• 技术文章 >后端开发 >php教程

    php加密算法之实现可逆加密算法和解密分享_PHP教程

    2016-07-13 10:40:28原创463

    加密算法如下:

    复制代码 代码如下:

    function encrypt($data, $key)
    {
    $key = md5($key);
    $x = 0;
    $len = strlen($data);
    $l = strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
    if ($x == $l)
    {
    $x = 0;
    }
    $char .= $key{$x};
    $x++;
    }
    for ($i = 0; $i < $len; $i++)
    {
    $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);
    }
    return base64_encode($str);
    }

    解密算法如下:

    复制代码 代码如下:

    function decrypt($data, $key)
    {
    $key = md5($key);
    $x = 0;
    $data = base64_decode($data);
    $len = strlen($data);
    $l = strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
    if ($x == $l)
    {
    $x = 0;
    }
    $char .= substr($key, $x, 1);
    $x++;
    }
    for ($i = 0; $i < $len; $i++)
    {
    if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1)))
    {
    $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
    }
    else
    {
    $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
    }
    }
    return $str;
    }

    上述加密解密的过程均需要用到一个加密密钥(即参数$key)。

    复制代码 代码如下:

    $data = 'PHP加密解密算法'; // 被加密信息
    $key = '123'; // 密钥
    $encrypt = encrypt($data, $key);
    $decrypt = decrypt($encrypt, $key);
    echo $encrypt, "\n", $decrypt;

    上述将输出类似如下结果:

    复制代码 代码如下:

    gniCSOzZG+HnS9zcFea7SefNGhXF
    PHP加密解密算法

    从上述结果可以看出,这是一组可逆的加密解密算法,可以用于部分需要还原的数据加密。

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/726031.htmlTechArticle加密算法如下: 复制代码 代码如下: function encrypt($data, $key) { $key=md5($key); $x=0; $len=strlen($data); $l=strlen($key); for ($i = 0; $i $len; $i++) { if ($x ==...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:加密算法
    上一篇:php利用腾讯ip分享计划获取地理位置示例分享_PHP教程 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 聊聊PHP escapeshellarg函数使用的中文问题• PHP原生类的总结分享• 分享PHP函数使用小工具(附代码示例)• PHP安全编码总结(经验分享)• 非常全面!PHP常见漏洞代码总结!
    1/1

    PHP中文网