PHP可逆加密解密算法
对于需要还原的'信息,则需要采用可逆的加密解密算法。下面小编为大家整理了PHP可逆加密解密算法,希望能帮到大家!
下面一组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, "", $decrypt;
上述将输出类似如下结果:
gniCSOzZG+HnS9zcFea7SefNGhXF
从上述结果可以看出,这是一组可逆的加密解密算法,可以用于部分需要还原的数据加密。
-
PHP如何递归实现json类
PHP如何递归实现json类呢?下面是小编给大家提供的实现方法,大家可以参考阅读,更多详情请关注应届毕业生考试网。代码如下:<?php/**@anthor:QD*@time:2013-09-27*/classjson{private$Arr=array();//传入数组//构造器publicfunctionjson($array){if(!is_array($arr...
-
PHP常用函数总结
PHP的常用函数有哪些呢?下面是由本站小编为大家整理的PHP常用函数总结,喜欢的可以收藏一下!了解更多详情资讯,请关注应届毕业生考试网!数学函数():求绝对值$abs=abs(-4.2);//4.2数字绝对值数字():进一法取整echoceil(9.999);//10浮点数进一取整r():舍去法取整ech...
-
php empty()和isset()的区别
在使用php编写页面程序时,经常使用变量处理函数判断php页面尾部参数的某个变量值是否为空,开始的时候我习惯了使用empty()函数,却发现了一些问题,因此改用isset()函数,问题不再。今天,小编为大家搜索整理了phpempty()和isset()的区别,希望大家能有所收获,更多精彩内容...
-
用PHP遍历目录下的全部文件
项目中有这么一个需求,需要遍历某个文件夹(目录)下的'所有文件。下面是解决这个问题所写的PHP代码,欢迎阅读,更多消息请关注应届毕业生网。第一种实现办法是用dir返回对象,第二种实现办法:用readdir()函数。/**********************一个简单的目录递归函数第一种实...