PHP一组可逆加密解密算法
来源:互联网 发布:淘宝发布定制商品 编辑:程序博客网 时间:2024/05/06 13:24
对于大部分密码加密,我们可以采用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+HnS9zcFea7SefNGhXFPHP加密解密算法从上述结果可以看出,这是一组可逆的加密解密算法,可以用于部分需要还原的数据加密。
1 0
- 一组PHP可逆加密解密算法
- PHP一组可逆加密解密算法
- 一组PHP可逆加密解密算法
- 一组PHP可逆加密解密算法
- 一组PHP可逆加密解密算法
- 一组PHP可逆加密解密算法
- 一组PHP可逆加密解密算法
- 一组PHP可逆加密解密算法
- 一组PHP可逆加密解密算法
- 一组PHP可逆加密解密算法
- PHP可逆加密解密算法
- PHP可逆加密解密算法
- PHP可逆加密解密算法
- php可逆的加密解密算法实现
- PHP-可逆加密解密算法总结
- 简易可逆加密解密算法
- PHP 动态可逆加密解密函数
- 学习php需要了解的点2 - PHP 一组加密解密算法
- 第5章 使用Intent和IntentFilter进行通信
- 新手菜鸟学习C#的笔记总结 之数组与集合(上)
- PHP发送带附件邮件的实现代码
- 在Visual C++2008中调用GCC/G++编译单文件 .
- CSS入门伪类,锚伪类,伪类子对象选择
- PHP一组可逆加密解密算法
- DW学习笔记(1)——安装、简单了解
- HDU 1003Max Sum
- Stage3_Lesson6电话与短信应用
- 二十进制
- /dev/zero和/dev/null的区别
- ZeroMQ的核心优势
- Keep on Truckin'
- struts2.0 小结