分享一个PHP加密解密的函数,此函数实现了对部分变量值的加密的功能。
加密代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
/* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt( $str , $key ){ //加密函数 srand((double)microtime() * 1000000); $encrypt_key =md5(rand(0, 32000)); $ctr =0; $tmp = '' ; for ( $i =0; $i < strlen ( $str ); $i ++){ $ctr = $ctr == strlen ( $encrypt_key )?0: $ctr ; $tmp .= $encrypt_key [ $ctr ].( $str [ $i ] ^ $encrypt_key [ $ctr ++]); } return base64_encode (passport_key( $tmp , $key )); } |
解密代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/* *功能:对字符串进行解密处理 *参数一:需要解密的密文 *参数二:密钥 */ function passport_decrypt( $str , $key ){ //解密函数 $str =passport_key( base64_decode ( $str ), $key ); $tmp = '' ; for ( $i =0; $i < strlen ( $str ); $i ++){ $md5 = $str [ $i ]; $tmp .= $str [++ $i ] ^ $md5 ; } return $tmp ; } |
辅助函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/* *辅助函数 */ function passport_key( $str , $encrypt_key ){ $encrypt_key =md5( $encrypt_key ); $ctr =0; $tmp = '' ; for ( $i =0; $i < strlen ( $str ); $i ++){ $ctr = $ctr == strlen ( $encrypt_key )?0: $ctr ; $tmp .= $str [ $i ] ^ $encrypt_key [ $ctr ++]; } return $tmp ; } |
使用如下所示:
1
2
3
4
5
6
7
8
9
|
$str = '作者:余浩苗;电话:13611972365;电子邮件:123cvbz@163.com' ; $key = 'hacker' ; $encrypt =passport_encrypt( $str , $key ); $decrypt =passport_decrypt( $encrypt , $key ); echo '原文:' , $str . "<br><hr>" ; echo '密文:' , $encrypt . "<br><hr>" ; echo '译文:' , $decrypt . "<br><hr>" ; |
以上就是为大家分享的php加密解密函数,希望大家喜欢,可以应用到自己的学习中。