php使用异或实现的加密解密实例

前端技术 2023/09/04 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>\';

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

本文地址:https://www.stayed.cn/item/10486

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。