Welcome 微信登录

首页 / 网页编程 / PHP / php使用异或实现的加密解密实例

若a=b ^ c;则b=a ^ c (^是异或的意思),php在处理异或的字符时先把字符转化为二进制的ascii值,对这些值进行异或,获取结果后在将ascii值转化为字符,原理说晚了直接贴实现的代码:
复制代码 代码如下:
echo "<meta charset="utf-8">";
  $str="世界,你好";  
  function jiami($str,$key){
   $key=md5($key);
   $k=md5(rand(0,100));//相当于动态密钥
   $k=substr($k,0,3);
   $tmp="";
   for($i=0;$i<strlen($str);$i++){
    $tmp.=substr($str,$i,1) ^ substr($key,$i,1);
   }
   return base64_encode($k.$tmp);
  }  
  function jiemi($str,$key){
   $len=strlen($str);
   $key=md5($key);
   $str=base64_decode($str);
   $str=substr($str,3,$len-3);
   $tmp="";
   for($i=0;$i<strlen($str);$i++){
    $tmp.=substr($str,$i,1) ^ substr($key,$i,1);
   }    
   return $tmp;
  }  
  $key="cc";
  $jh=jiami($str, $key);
  echo "加密前:".$str."<br>";
  echo "加密后:".$jh."<br>";
  echo "解密后:".jiemi($jh, $key)."<br>";

有机会在完善下,本函数实现的是简单的加密解密