程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php使用異或實現的加密解密實例

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

有機會在完善下,本函數實現的是簡單的加密解密

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved