PHP 是一种通用开源脚本语言,主要适用于Web开发领域,独特的语法混合了C、Java、Perl以及PHP自创的语法,可以比CGI或者Perl更快速地执行动态网页,本文利用可逆转 base64_encode 和 base64_decode (base64_encode()、urlencode() 相对应的解密函数:base64_decode() 、urldecode()
base64_encode() 将字符串以 MIME BASE64 编码)实现加密和解密。
加密函数,具体代码如下:
/* * 加密 * str 需要加密的内容 * key 密钥 */ 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)); }
解密函数,具体代码如下:
/* * 字符串进行解密处理 * 需要解密的密文内容 * 密钥 */ 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; }
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; }
测试函数,具体代码如下:
$str='欢迎收藏 www.yoodb.com'; $key='yoodb'; $encrypt=passport_encrypt($str,$key); $decrypt=passport_decrypt($encrypt,$key); echo '原文:',$str."<br>"; echo '密文:',$encrypt."<br>"; echo '译文:',$decrypt."<br>";