最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php使用異或?qū)崿F(xiàn)的加密解密實(shí)例

 更新時(shí)間:2013年09月04日 15:08:44   作者:  
字符串的加密解密在數(shù)據(jù)的處理中應(yīng)該是經(jīng)常使用的,但MD5加密是不可逆的,所以自能自己動(dòng)手寫一個(gè)加密解密函數(shù),思路很。網(wǎng)上看了幾個(gè)用異或?qū)崿F(xiàn)的思路,看懂后就自己寫了一下。異或的思路很簡(jiǎn)單,用個(gè)公示簡(jiǎn)單的表示下吧

若a=b ^ c;則b=a ^ c (^是異或的意思),php在處理異或的字符時(shí)先把字符轉(zhuǎn)化為二進(jìn)制的ascii值,對(duì)這些值進(jìn)行異或,獲取結(jié)果后在將ascii值轉(zhuǎn)化為字符,原理說晚了直接貼實(shí)現(xiàn)的代碼:

復(fù)制代碼 代碼如下:

echo '<meta charset="utf-8">';
  $str='世界,你好';  
  function jiami($str,$key){
   $key=md5($key);
   $k=md5(rand(0,100));//相當(dāng)于動(dòng)態(tài)密鑰
   $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>';

有機(jī)會(huì)在完善下,本函數(shù)實(shí)現(xiàn)的是簡(jiǎn)單的加密解密

相關(guān)文章

  • laravel 解決paginate查詢多個(gè)字段報(bào)錯(cuò)的問題

    laravel 解決paginate查詢多個(gè)字段報(bào)錯(cuò)的問題

    今天小編就為大家分享一篇laravel 解決paginate查詢多個(gè)字段報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • thinkPHP5 tablib標(biāo)簽庫自定義方法詳解

    thinkPHP5 tablib標(biāo)簽庫自定義方法詳解

    這篇文章主要介紹了thinkPHP5 tablib標(biāo)簽庫自定義方法,結(jié)合具體實(shí)例形式分析了thinkPHP5標(biāo)簽庫的定義、用法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-05-05
  • Thinkphp5框架異常處理操作實(shí)例分析

    Thinkphp5框架異常處理操作實(shí)例分析

    這篇文章主要介紹了Thinkphp5框架異常處理操作,結(jié)合實(shí)例形式分析了Thinkphp5框架異常處理操作原理、操作方法與相關(guān)使用技巧,需要的朋友可以參考下
    2020-06-06
  • thinkPHP簡(jiǎn)單遍歷數(shù)組方法分析

    thinkPHP簡(jiǎn)單遍歷數(shù)組方法分析

    這篇文章主要介紹了thinkPHP簡(jiǎn)單遍歷數(shù)組方法,結(jié)合實(shí)例形式分析了thinkPHP使用volist標(biāo)簽遍歷數(shù)組的技巧,并對(duì)比分析了織夢(mèng)cms的arclist標(biāo)簽加強(qiáng)對(duì)thinkPHP數(shù)組遍歷的理解,需要的朋友可以參考下
    2016-05-05
  • 一張表搞清楚php is_null、empty、isset的區(qū)別

    一張表搞清楚php is_null、empty、isset的區(qū)別

    這篇文章主要介紹了一張表搞清楚php is_null、empty、isset的區(qū)別,isset 判斷變量是否已存在,empty 判斷變量是否為空或?yàn)?,is_null 判斷變量是否為NULL,需要的朋友可以參考下
    2015-07-07
  • 實(shí)現(xiàn)獲取http內(nèi)容的php函數(shù)分享

    實(shí)現(xiàn)獲取http內(nèi)容的php函數(shù)分享

    這篇文章主要介紹了實(shí)現(xiàn)獲取http內(nèi)容的php函數(shù),現(xiàn)在分享給大家,需要的朋友可以看一下
    2014-02-02
  • 最新評(píng)論

    黑水县| 浙江省| 噶尔县| 天台县| 东宁县| 绍兴市| 新绛县| 吕梁市| 长白| 河间市| 景洪市| 阳城县| 余庆县| 商都县| 嘉黎县| 绥滨县| 上杭县| 正定县| 罗定市| 望城县| 师宗县| 洪洞县| 潍坊市| 阳春市| 大同县| 张家川| 昌乐县| 东明县| 合水县| 迭部县| 龙岩市| 吉林省| 临高县| 晋宁县| 桂东县| 双鸭山市| 藁城市| 盐津县| 鄂温| 苏尼特右旗| 元谋县|