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

    php加密算法之实现可逆加密算法和解密分享_php实例

    2016-06-07 17:22:19原创251
    加密算法如下:
    复制代码 代码如下:

    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加密解密算法

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

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:php版小黄鸡simsimi聊天机器人接口分享_php实例 下一篇:使用openssl实现rsa非对称加密算法示例_php实例
    PHP编程就业班

    相关文章推荐

    • 归纳整理39道PHP面试题(总结分享)• IIS7.5 配置 PHP 5.3.5• php模式设计之 注册树模式,php模式设计_PHP教程• PHP Reflection API详解_PHP教程• 数组函数总结,数组函数_PHP教程

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网