PHP加密解密函数

8/31/2015来源:PHP技巧人气:1737

php加密解密函数

<?php/***功能:对字符串进行加密处理*参数一:需要加密的内容*参数二:密钥*/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.phpernote.com';$key='658jr';$encrypt=passport_encrypt($str,$key);$decrypt=passport_decrypt($encrypt,$key);

echo '原文:',$str."<br><hr>";echo '密文:',$encrypt."<br><hr>";echo '译文:',$decrypt."<br><hr>";