01 | <?php |
02 | /** |
03 | *功能:对字符串进行加密处理 |
04 | *参数一:需要加密的内容@camnpr |
05 | *参数二:密钥 |
06 | */ |
07 | function passport_encrypt( $str , $key ){ //加密函数 |
08 | srand((double)microtime() * 1000000); |
09 | $encrypt_key =md5(rand(0, 32000)); |
10 | $ctr =0; |
11 | $tmp = '' ; |
12 | for ( $i =0; $i < strlen ( $str ); $i ++){ |
13 | $ctr = $ctr == strlen ( $encrypt_key )?0: $ctr ; |
14 | $tmp .= $encrypt_key [ $ctr ].( $str [ $i ] ^ $encrypt_key [ $ctr ++]); |
15 | } |
16 | return base64_encode (passport_key( $tmp , $key )); |
17 | } |
18 | /** |
19 | *功能:对字符串进行解密处理 |
20 | *参数一:需要解密的密文@郑州网建 |
21 | *参数二:密钥 |
22 | */ |
23 | function passport_decrypt( $str , $key ){ //解密函数 |
24 | $str =passport_key( base64_decode ( $str ), $key ); |
25 | $tmp = '' ; |
26 | for ( $i =0; $i < strlen ( $str ); $i ++){ |
27 | $md5 = $str [ $i ]; |
28 | $tmp .= $str [++ $i ] ^ $md5 ; |
29 | } |
30 | return $tmp ; |
31 | } |
32 | /** |
33 | *辅助函数 |
34 | */ |
35 | function passport_key( $str , $encrypt_key ){ |
36 | $encrypt_key =md5( $encrypt_key ); |
37 | $ctr =0; |
38 | $tmp = '' ; |
39 | for ( $i =0; $i < strlen ( $str ); $i ++){ |
40 | $ctr = $ctr == strlen ( $encrypt_key )?0: $ctr ; |
41 | $tmp .= $str [ $i ] ^ $encrypt_key [ $ctr ++]; |
42 | } |
43 | return $tmp ; |
44 | } |
45 |
46 | $str = 'Author:CAMNPR.COM' ; |
47 | $key = 'camnprcom' ; |
48 | $encrypt =passport_encrypt( $str , $key ); |
49 | $decrypt =passport_decrypt( $encrypt , $key ); |
50 | echo '原文:' , $str ." |
51 | <hr>"; |
52 | echo '密文:' , $encrypt ." |
53 | <hr>"; |
54 | echo '译文:' , $decrypt ." |
55 | <hr>"; |
56 | ?> |