Home > php教程 > php手册 > 字符串加密解密算法

字符串加密解密算法

WBOY
Release: 2016-06-13 09:35:14
Original
1291 people have browsed it

 php5.5中有更为可靠和方便的加密方式。喜欢钻研的朋友可以了解一下:

 password_hash()

http://www.php.net/manual/zh/function.password-hash.php

基于mcrypt扩展,按位异或总结的两个字符串加密解密算法

<?<span>php
</span><span>/*</span><span>*
 * @info 字符串加密解密算法一,利用mcrypt扩展
 * @param string $string 待处理字符串
 *        $action ENCODE,加密 | DECODE,解密
 * @return string $returnstr
 * @date 2014/4/22
 * @author tonglei
 </span><span>*/</span>

<span>function</span> mcrypt_handle_string(<span>$string</span>, <span>$action</span> = 'ENCODE'<span>)
{
        </span>!<span>is_array</span>(<span>$string</span>) or <span>exit</span><span>;
        </span><span>$action</span> == 'DECODE' && <span>$string</span> = <span>base64_decode</span>(<span>$string</span><span>);
        </span><span>$key</span> = "123456"; <span>//</span><span>key可自定义或在配置文件中获取</span>
        <span>$mcryptAlgorithm</span> = MCRYPT_DES; <span>//</span><span>选择一种加密算法</span>
        <span>$mcryptMode</span> = MCRYPT_MODE_ECB; <span>//</span><span>选择一种加密模式</span>
        <span>$mcryptIv</span> = mcrypt_create_iv(mcrypt_get_iv_size(<span>$mcryptAlgorithm</span>, <span>$mcryptMode</span>),<span>
                MCRYPT_RAND); </span><span>//</span><span>创建初始化向量</span>

        <span>$returnstr</span> = <span>base64_encode</span>(mcrypt_encrypt(<span>$mcryptAlgorithm</span>, <span>$key</span>, <span>$string</span>, <span>$mcryptMode</span>,
                <span>$mcryptIv</span><span>));
        </span><span>if</span>('DECODE' == <span>$action</span><span>)
        {
                </span><span>$returnstr</span> = mcrypt_decrypt(<span>$mcryptAlgorithm</span>, <span>$key</span>, <span>$string</span>, <span>$mcryptMode</span>, <span>$mcryptIv</span><span>);
        }
        </span><span>return</span> <span>$returnstr</span><span>;

}</span>
Copy after login

<?<span>php
</span><span>/*</span><span>*
 *
 * @info 字符串加密解密算法二 利用按位异或
 * @param string $string 待处理字符串
 * @param $action ENCODE 加密 | DECODE 解密
 * @return string
 </span><span>*/</span>
<span>function</span> StrCode(<span>$string</span>, <span>$action</span> = 'ENCODE'<span>)
{
        </span><span>$action</span> != 'ENCODE' && <span>$string</span> = <span>base64_decode</span>(<span>$string</span><span>);
        </span><span>$code</span> = ''<span>;
        </span><span>$key</span> = <span>substr</span>(<span>md5</span>(<span>$GLOBALS</span>['pwServer']['HTTP_USER_AGENT'] . <span>$GLOBALS</span>['db_hash']),
                8, 18<span>);
        </span><span>$keyLen</span> = <span>strlen</span>(<span>$key</span><span>);
        </span><span>$strLen</span> = <span>strlen</span>(<span>$string</span><span>);
        </span><span>for</span> (<span>$i</span> = 0; <span>$i</span> < <span>$strLen</span>; <span>$i</span>++<span>)
        {
                </span><span>$k</span> = <span>$i</span> % <span>$keyLen</span><span>;
                </span><span>$code</span> .= <span>$string</span>[<span>$i</span>] ^ <span>$key</span>[<span>$k</span><span>];
        }
        </span><span>return</span> (<span>$action</span> != 'DECODE' ? <span>base64_encode</span>(<span>$code</span>) : <span>$code</span><span>);
}</span>
Copy after login

 

Related labels:
php
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Recommendations
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template