您当前的位置: 站长圈 > 技术文章 > 后端教程 > PHP加密解密的函数

PHP加密解密的函数

来源: 作者:adminzzq 点击: 0

分享一个PHP加密解密的函数,此函数实现了对部分变量值的加密的功能。

加密代码如下:

01 /*
02 *功能:对字符串进行加密处理
03 *参数一:需要加密的内容
04 *参数二:密钥
05 */
06 function passport_encrypt($str,$key){ //加密函数
07     srand((double)microtime() * 1000000);
08     $encrypt_key=md5(rand(0, 32000));
09     $ctr=0;
10     $tmp='';
11     for($i=0;$i<strlen($str);$i++){
12         $ctr=$ctr==strlen($encrypt_key)?0:$ctr;
13         $tmp.=$encrypt_key[$ctr].($str[$i] ^ $encrypt_key[$ctr++]);
14     }
15     return base64_encode(passport_key($tmp,$key));
16 }

解密代码如下:

01 /*
02 *功能:对字符串进行解密处理
03 *参数一:需要解密的密文
04 *参数二:密钥
05 */
06 function passport_decrypt($str,$key){ //解密函数
07     $str=passport_key(base64_decode($str),$key);
08     $tmp='';
09     for($i=0;$i<strlen($str);$i++){
10         $md5=$str[$i];
11         $tmp.=$str[++$i] ^ $md5;
12     }
13     return $tmp;
14 }

辅助函数:

01 /*
02 *辅助函数
03 */
04 function passport_key($str,$encrypt_key){
05     $encrypt_key=md5($encrypt_key);
06     $ctr=0;
07     $tmp='';
08     for($i=0;$i<strlen($str);$i++){
09         $ctr=$ctr==strlen($encrypt_key)?0:$ctr;
10         $tmp.=$str[$i] ^ $encrypt_key[$ctr++];
11     }
12     return $tmp;
13 }

使用如下所示:

1 $str='作者:www.phpernote.com';
2 $key='123456';
3 $encrypt=passport_encrypt($str,$key);
4 $decrypt=passport_decrypt($encrypt,$key);
5  
6 echo '原文:',$str."<br><hr>";
7 echo '密文:',$encrypt."<br><hr>";
8 echo '译文:',$decrypt."<br><hr>";