若a=b ^ c;則b=a ^ c (^是異或的意思),php在處理異或的字元時先把字元轉換為二進位的ascii值,對這些值進行異或,取得結果後在將ascii值轉換為字符,原理說晚了直接貼實現的代碼:
複製代碼 代碼如下:
echo '';
$str='世界,你好';
function jiami($str,$key){
function jiami($str,$key){
$key=md5 ($key);
$k=md5(rand(0,100));//相當於動態金鑰
$k=substr($k,0,3);
$tmp="" ;
for($i=0;$i $tmp.=substr($str,$i,1) ^ substr($key,$i, 1);
}
return base64_encode($k.$tmp);
}
function jiemi($str,$key. 🎜> $key=md5($key);
$str=base64_decode($str);
$str=substr($str,3,$len-3); $str=substr($str,3,$len-3); ;
for($i=0;$i $tmp.=substr($str,$i,1) ^ substr($key,$i, 1);
}
return $tmp;
}
$key='cc';
$key='cc';
$key='cc'; :'.$str.'
';
echo '加密後:'.$jh.'
';
echo '解密後:'.jiemi($jh, $key). '
';
有機會在完善下,本函數實現的是簡單的加密解密
http://www.bkjia.com/PHPjc/313657.html
www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/313657.htmlTechArticle若a=b ^ c;則b=a ^ c (^是異或的意思),php在處理異或的字元時先把字元轉換為二進位的ascii值,對這些值進行異或,取得結果後在將ascii值轉換...