亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP封裝的字符串加密解密函數

2024-05-04 23:41:04
字體:
來源:轉載
供稿:網友
這篇文章主要給大家匯總介紹了PHP封裝的字符串加密解密函數以及使用方法,非常的簡單實用,有需要的小伙伴可以參考下
 

程序中經常使用的PHP加密解密字符串函數

代碼如下:

/********************************************************************* 函數名稱:encrypt 函數作用:加密解密字符串 使用方法: 加密  :encrypt('str','E','nowamagic'); 解密  :encrypt('被加密過的字符串','D','nowamagic'); 參數說明: $string :需要加密解密的字符串 $operation:判斷是加密還是解密:E:加密 D:解密 $key  :加密的鑰匙(密匙);*********************************************************************/ function encrypt($string,$operation,$key='') {  $key=md5($key);  $key_length=strlen($key);  $string=$operation=='D'?base64_decode($string):substr(md5($string.$key),0,8).$string;  $string_length=strlen($string);  $rndkey=$box=array();  $result='';  for($i=0;$i<=255;$i++)  {   $rndkey[$i]=ord($key[$i%$key_length]);   $box[$i]=$i;  }  for($j=$i=0;$i<256;$i++)  {   $j=($j+$box[$i]+$rndkey[$i])%256;   $tmp=$box[$i];   $box[$i]=$box[$j];   $box[$j]=$tmp;  }  for($a=$j=$i=0;$i<$string_length;$i++)  {   $a=($a+1)%256;   $j=($j+$box[$a])%256;   $tmp=$box[$a];   $box[$a]=$box[$j];   $box[$j]=$tmp;   $result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256]));  }  if($operation=='D')  {   if(substr($result,0,8)==substr(md5(substr($result,8).$key),0,8))   {    return substr($result,8);   }   else   {    return'';   }  }  else  {   return str_replace('=','',base64_encode($result));  } }

使用方法:

$id = 132; $token = encrypt($id, 'E', 'a'); echo '加密:'.encrypt($id, 'E', 'a');echo '<br />'; echo '解密:'.encrypt($token, 'D', 'a');

非常給力的authcode加密函數,Discuz!經典代碼(帶詳解):

function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) {    // 動態密匙長度,相同的明文會生成不同密文就是依靠動態密匙    $ckey_length = 4;        // 密匙    $key = md5($key ? $key : $GLOBALS['discuz_auth_key']);        // 密匙a會參與加解密    $keya = md5(substr($key, 0, 16));    // 密匙b會用來做數據完整性驗證    $keyb = md5(substr($key, 16, 16));    // 密匙c用于變化生成的密文    $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length):substr(md5(microtime()), -$ckey_length)) : '';    // 參與運算的密匙    $cryptkey = $keya.md5($keya.$keyc);    $key_length = strlen($cryptkey);    // 明文,前10位用來保存時間戳,解密時驗證數據有效性,10到26位用來保存$keyb(密匙b), //解密時會通過這個密匙驗證數據完整性    // 如果是解碼的話,會從第$ckey_length位開始,因為密文前$ckey_length位保存 動態密匙,以保證解密正確    $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;    $string_length = strlen($string);    $result = '';    $box = range(0, 255);    $rndkey = array();    // 產生密匙簿    for($i = 0; $i <= 255; $i++) {      $rndkey[$i] = ord($cryptkey[$i % $key_length]);    }    // 用固定的算法,打亂密匙簿,增加隨機性,好像很復雜,實際上對并不會增加密文的強度    for($j = $i = 0; $i < 256; $i++) {      $j = ($j + $box[$i] + $rndkey[$i]) % 256;      $tmp = $box[$i];      $box[$i] = $box[$j];      $box[$j] = $tmp;    }    // 核心加解密部分    for($a = $j = $i = 0; $i < $string_length; $i++) {      $a = ($a + 1) % 256;      $j = ($j + $box[$a]) % 256;      $tmp = $box[$a];      $box[$a] = $box[$j];      $box[$j] = $tmp;      // 從密匙簿得出密匙進行異或,再轉成字符      $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));    }    if($operation == 'DECODE') {     // 驗證數據有效性,請看未加密明文的格式      if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {        return substr($result, 26);      } else {        return '';      }    } else {      // 把動態密匙保存在密文里,這也是為什么同樣的明文,生產不同密文后能解密的原因      // 因為加密后的密文可能是一些特殊字符,復制過程可能會丟失,所以用base64編碼      return $keyc.str_replace('=', '', base64_encode($result));    }  }

函數authcode($string, $operation, $key, $expiry)中的$string:字符串,明文或密文;$operation:DECODE表示解密,其它表示加密;$key:密匙;$expiry:密文有效期。

用法:

$str = 'abcdef'; $key = 'www.helloweba.com'; echo authcode($str,'ENCODE',$key,0); //加密 $str = '56f4yER1DI2WTzWMqsfPpS9hwyoJnFP2MpC8SOhRrxO7BOk'; echo authcode($str,'DECODE',$key,0); //解密

3、加解密函數encrypt():

function encrypt($string,$operation,$key=''){   $key=md5($key);   $key_length=strlen($key);    $string=$operation=='D'?base64_decode($string):substr(md5($string.$key),0,8).$string;   $string_length=strlen($string);   $rndkey=$box=array();   $result='';   for($i=0;$i<=255;$i++){       $rndkey[$i]=ord($key[$i%$key_length]);     $box[$i]=$i;   }   for($j=$i=0;$i<256;$i++){     $j=($j+$box[$i]+$rndkey[$i])%256;     $tmp=$box[$i];     $box[$i]=$box[$j];     $box[$j]=$tmp;   }   for($a=$j=$i=0;$i<$string_length;$i++){     $a=($a+1)%256;     $j=($j+$box[$a])%256;     $tmp=$box[$a];     $box[$a]=$box[$j];     $box[$j]=$tmp;     $result.=chr(ord($string[$i])^($box[($box[$a]+$box[$j])%256]));   }   if($operation=='D'){     if(substr($result,0,8)==substr(md5(substr($result,8).$key),0,8)){       return substr($result,8);     }else{       return'';     }   }else{     return str_replace('=','',base64_encode($result));   } }

函數encrypt($string,$operation,$key)中$string:需要加密解密的字符串;$operation:判斷是加密還是解密,E表示加密,D表示解密;$key:密匙。

用法:

$str = 'abc'; $key = 'www.helloweba.com'; $token = encrypt($str, 'E', $key); echo '加密:'.encrypt($str, 'E', $key); echo '解密:'.encrypt($str, 'D', $key);
 


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品免费| 成人欧美一区二区三区在线| 午夜精品久久久久久久99热浪潮| 亚洲字幕在线观看| 欧美一区二区.| 日韩欧美999| 国产一区二区三区在线播放免费观看| 性夜试看影院91社区| 精品日韩中文字幕| 亚洲成人精品久久久| 狠狠久久亚洲欧美专区| 亚洲精品一区二区三区婷婷月| 欧美日韩精品二区| 国产亚洲视频在线| 亚洲xxxx18| 亚洲在线观看视频网站| 国产亚洲a∨片在线观看| 国产精品久久不能| 亚洲黄色在线观看| 中文字幕日韩欧美精品在线观看| 国模精品系列视频| 欧美另类老肥妇| 懂色av中文一区二区三区天美| 国产亚洲精品va在线观看| 亚洲午夜激情免费视频| 91精品综合久久久久久五月天| 亚洲国产日韩欧美综合久久| 国产精品老牛影院在线观看| 成人黄色生活片| 国产综合在线观看视频| 久久综合久久美利坚合众国| 亚洲国产精品嫩草影院久久| 少妇高潮久久久久久潘金莲| 萌白酱国产一区二区| 另类美女黄大片| 高清欧美性猛交| 91精品视频大全| 亚洲一区亚洲二区亚洲三区| 色悠久久久久综合先锋影音下载| 欧美高清激情视频| 国产日韩欧美在线播放| 欧美成人免费播放| 国内精品免费午夜毛片| 在线精品播放av| 中文字幕精品影院| 亚洲国产精品推荐| 国产亚洲成av人片在线观看桃| 欧美久久精品一级黑人c片| 久久久久久免费精品| 亚洲最大av网站| 欧美猛交免费看| 亚洲欧美国产日韩中文字幕| 成人免费看片视频| 亚洲电影免费观看高清完整版| 九九精品在线播放| 91久久精品久久国产性色也91| 91亚洲精品久久久久久久久久久久| 国产精品人成电影在线观看| 国产精品久久久久久婷婷天堂| 亚洲视频在线看| 国产精品国产福利国产秒拍| 久久国产精品亚洲| 成人午夜在线视频一区| 成人做爰www免费看视频网站| 久久久av亚洲男天堂| 日本高清+成人网在线观看| 日韩美女av在线免费观看| 久久久国产精品视频| 亚洲欧洲一区二区三区在线观看| 欧美限制级电影在线观看| 国产激情999| 国产视频精品免费播放| 97香蕉久久夜色精品国产| 最近2019中文字幕第三页视频| 亚洲精品久久视频| 亚洲国产第一页| 欧美精品电影在线| 国产精品免费视频xxxx| 欧美性猛交丰臀xxxxx网站| 日韩在线免费视频观看| 一本一本久久a久久精品综合小说| 亚洲v日韩v综合v精品v| 欧美高跟鞋交xxxxxhd| 日韩欧美精品在线观看| 国产精品第1页| 国产视频精品在线| 欧美性猛交xxxx黑人| 国产精品色午夜在线观看| 久久香蕉国产线看观看网| 久久精品国产精品| 91在线看www| 国内精品伊人久久| 2021国产精品视频| 日韩成人中文字幕在线观看| 日韩成人中文字幕| 成人激情免费在线| 国产精品三级网站| 国产精品久久久久aaaa九色| 日韩在线观看免费av| 国产精品久久一| 国产精品美女网站| 日韩在线观看免费高清完整版| 精品久久久久久久久久久久久久| 国产精品精品视频| 7m第一福利500精品视频| 国产成人精品久久久| 欧美插天视频在线播放| 91成人在线视频| 亚洲国产毛片完整版| 国产精品久久久久国产a级| 欧美性xxxxx极品娇小| 亚洲欧美在线一区| 日韩网站免费观看| 欧美一级黑人aaaaaaa做受| 欧美精品免费看| 亚洲精品国产综合区久久久久久久| 久久av.com| 国产女精品视频网站免费| 亚洲综合日韩中文字幕v在线| 成人h视频在线观看播放| 亚洲日本成人女熟在线观看| 精品久久久久久久久久ntr影视| 精品欧美激情精品一区| 日韩美女视频免费在线观看| 国产乱肥老妇国产一区二| 精品国产自在精品国产浪潮| 国产在线播放不卡| zzjj国产精品一区二区| 日韩免费在线免费观看| 亚洲精品视频网上网址在线观看| 久久国产精品久久精品| 国产三级精品网站| 国产亚洲精品久久久久动| 欧美日韩一区二区三区在线免费观看| 国产狼人综合免费视频| 亚洲在线免费观看| 狠狠久久五月精品中文字幕| 国产免费成人av| 亚洲老头老太hd| 亚洲国产欧美一区二区三区同亚洲| 欧美日韩国产综合新一区| 一区二区三区天堂av| 秋霞av国产精品一区| 麻豆国产va免费精品高清在线| 国产视频久久久| 亚洲午夜女主播在线直播| 国产精品久久精品| 国内精品久久影院| 中文字幕综合在线| 欧美xxxx综合视频| 亚洲黄色av网站| 中文日韩电影网站| 亚洲天堂av在线免费观看| 欧美激情视频一区二区三区不卡| 九色成人免费视频| 亚洲欧美日韩另类| 国产aⅴ夜夜欢一区二区三区| 亚洲高清一二三区| 日韩hd视频在线观看| 欧美日本黄视频| 97视频在线看| 欧美性生交xxxxx久久久| 在线播放亚洲激情| 精品视频在线播放|