您当前的位置: 首页 > 网站编程 > PHP教程 > php加密算法之实现可逆加密算法和解密分享

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

作者:不详 来源:网络 发布时间: 2014-08-12 13:48 点击:
对于大部分密码加密,我们可以采用md5、sha1等方法。可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密。对于需要还原的信息,则需要采用可逆的加密解密算法,下面一组PHP函数是实现此加密解密的方法 加密算法如下: 代码如下: function encrypt($data, $k

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

  对于大部分密码加密,我们可以采用md5、sha1等方法。可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密。对于需要还原的信息,则需要采用可逆的加密解密算法,下面一组PHP函数是实现此加密解密的方法

  加密算法如下:

  代码如下:

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

  从上述结果可以看出,这是一组可逆的加密解密算法,可以用于部分需要还原的数据加密。
分享到:
本文"php加密算法之实现可逆加密算法和解密分享"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4