分享一个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加密解密函数,希望大家喜欢,可以应用到自己的学习中。