200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > PHP加密算法之实现可逆加密算法和解密分享

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

时间:2019-12-09 12:59:32

相关推荐

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

对于大部分密码加密,我们可以采用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加密解密算法

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。