您的位置 首页 站长运营

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

春哥技术专栏:对于大部分密码加密,我们可以采用md5、sha1等方法。可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密。对于需要还原的信息,则需要采用可逆的加密解密算法…

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

加密算法如下:

functionencrypt($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);
}
returnbase64_encode($str);
}

解密算法如下:

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

从上述结果可以看出,这是一组可逆的加密解密算法,可以用于部分需要还原的数据加密。
本文来自网络,不代表24小时课堂在线立场,转载请注明出处:https://www.24ketang.cn/48643.html

为您推荐

返回顶部