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>';

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