Home > Backend Development > PHP Tutorial > String encryption and decryption algorithm_PHP tutorial

String encryption and decryption algorithm_PHP tutorial

WBOY
Release: 2016-07-13 10:29:51
Original
863 people have browsed it

There is a more reliable and convenient encryption method in php5.5. Friends who like to delve deeper can find out:

password_hash()

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

Two string encryption and decryption algorithms based on mcrypt extension, bitwise XOR summary

<?<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

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/769761.htmlTechArticleThere is a more reliable and convenient encryption method in php5.5. Friends who like to study can learn about it: password_hash() http://www.php.net/manual/zh/function.password-hash.php Based on mcrypt extension...
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 Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template