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

首頁 > 編程 > PHP > 正文

PHP加密解密函數生成加密解密字符串

2020-03-22 17:28:48
字體:
來源:轉載
供稿:網友
PHP加密解密函數分享,一個是Discuz!的authcode加密函數(帶詳細分解),一個是encrypt()函數。需要使用PHP將特定的信息進行加密,也就是通過加密算法生成一個加密字符串,這個加密后的字符串可以通過解密算法進行解密,便于程序對解密后的信息進行處理。

項目中有時我們需要使用PHP將特定的信息進行加密,也就是通過加密算法生成一個加密字符串,這個加密后的字符串可以通過解密算法進行解密,便于程序對解密后的信息進行處理。
最常見的應用在用戶登錄以及一些API數據交換的場景。

筆者收錄了一些比較經典的PHP加密解密函數代碼,分享給大家。加密解密原理一般都是通過一定的加密解密算法,將密鑰加入到算法中,最終得到加密解密結果。

1、非常給力的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); //解密

2、加解密函數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 $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通過html' target='_blank'>Ajax調用連接百度效果實現檢測網站是否聯網的功能

PHP單例模式的概念及特點

PHP中static關鍵字的定義、遲綁定以及與self關鍵字的區別

以上就是PHP加密解密函數生成加密解密字符串的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产乱码久久久久久天美| 国产成人啪精品视频免费网| 亚洲欧美日韩直播| 亚洲一区二区三区视频| 欧美亚洲成人免费| 国产在线日韩在线| 亚洲欧洲在线免费| 久久噜噜噜精品国产亚洲综合| 久久乐国产精品| 国产精品久久网| 日韩美女免费线视频| 精品国产一区二区三区四区在线观看| 丝袜一区二区三区| 深夜福利亚洲导航| 亚洲美女久久久| 亚洲精品视频久久| 亚洲a中文字幕| 91精品久久久久| 国产精品v日韩精品| 国产视频亚洲精品| 国产美女精品免费电影| 亚洲综合大片69999| 亚洲一区二区在线播放| 亚洲欧美一区二区三区在线| 69精品小视频| 91av视频在线免费观看| 久久综合免费视频| 成人444kkkk在线观看| 欧美丝袜第一区| 日韩亚洲国产中文字幕| 欧美成人免费va影院高清| 欧美在线观看视频| 久久久久这里只有精品| 精品亚洲夜色av98在线观看| xxxxx成人.com| 国产一区二区三区在线观看视频| 亚洲人成在线观| 综合激情国产一区| 久久精品久久久久久| 欧美午夜性色大片在线观看| 91中文精品字幕在线视频| 亚洲人成电影网站| 欧美电影免费观看网站| 国产中文欧美精品| 亚洲精品一区中文字幕乱码| 欧美午夜片在线免费观看| 日韩欧美中文字幕在线播放| 国产精品美乳在线观看| 久久91亚洲精品中文字幕奶水| 亚洲激情小视频| 狠狠久久五月精品中文字幕| 亚洲欧美另类人妖| 亚洲美女av在线播放| 国产性猛交xxxx免费看久久| 国产精品色悠悠| 97国产真实伦对白精彩视频8| 久热爱精品视频线路一| 亚洲美腿欧美激情另类| 亚洲国产毛片完整版| 亚洲精品一区二区在线| 久久久久久久久久久国产| 91亚洲精品久久久久久久久久久久| 久久久免费高清电视剧观看| 久久久人成影片一区二区三区| 国产亚洲aⅴaaaaaa毛片| 欧美精品在线免费| 日韩精品在线免费播放| 一区二区三区回区在观看免费视频| 欧美性资源免费| 亚洲成色www8888| 国产亚洲精品久久久久久牛牛| 欧美一级黄色网| 欧美电影在线观看高清| 亚洲精品有码在线| 亚洲成在人线av| 狠狠色香婷婷久久亚洲精品| 日本午夜人人精品| 国产九九精品视频| 欧美日韩国产精品一区二区三区四区| 国产精品久久av| 国产精品自产拍在线观| 91九色视频在线| 国产z一区二区三区| 亚洲欧美综合v| 大胆欧美人体视频| 一区三区二区视频| 亚洲最新av在线网站| 欧美日韩中文字幕在线视频| 中文字幕在线看视频国产欧美在线看完整| 国产啪精品视频| 黑人巨大精品欧美一区二区免费| 992tv成人免费影院| 午夜免费在线观看精品视频| 国模gogo一区二区大胆私拍| 亚洲一区二区三区在线视频| 亚洲资源在线看| 亚洲欧美国产精品久久久久久久| 欧美日韩国产精品一区二区不卡中文| 97av在线视频免费播放| 91在线色戒在线| 国产精品午夜一区二区欲梦| 日韩av电影免费观看高清| 欧美日本中文字幕| 国产精品夜色7777狼人| 亚洲摸下面视频| 久久综合伊人77777尤物| 亚洲成人黄色在线观看| 97久久精品视频| 欧美精品久久久久久久久| 亚洲黄页网在线观看| 欧美成人黄色小视频| 欧美色视频日本版| 日产精品久久久一区二区福利| 伊人久久大香线蕉av一区二区| 国产999精品久久久| 国产精品三级久久久久久电影| 曰本色欧美视频在线| 国内精品模特av私拍在线观看| 精品国产一区二区三区四区在线观看| 亚洲精品国产精品久久清纯直播| 欧美日韩国产黄| 午夜精品三级视频福利| 热久久99这里有精品| 欧美黄色小视频| 欧美亚洲成人网| 亚洲精品国产成人| 久久久久国产精品免费网站| 国产精品流白浆视频| 国内精品久久久久影院优| 亚洲第一av在线| 欧美午夜激情在线| 92国产精品久久久久首页| 亚洲女同性videos| 精品欧美aⅴ在线网站| 欧美极品第一页| 精品日本美女福利在线观看| 成人深夜直播免费观看| 欧美国产视频一区二区| 亚洲欧美日韩一区二区三区在线| 欧美国产一区二区三区| 在线日韩第一页| 国产精品久久久久久久久久久不卡| 色狠狠av一区二区三区香蕉蜜桃| 91chinesevideo永久地址| 久久精视频免费在线久久完整在线看| 国产成人涩涩涩视频在线观看| 欧美成人免费小视频| 亚洲黄色在线看| 欧美激情亚洲综合一区| 在线精品视频视频中文字幕| 亚洲欧美资源在线| 91tv亚洲精品香蕉国产一区7ujn| 日韩精品欧美激情| 日韩一区二区福利| 欧美激情视频免费观看| 国产美女搞久久| 91亚洲精品久久久久久久久久久久| 欧美激情精品久久久久久久变态| www日韩中文字幕在线看| 国产精品久久999| 国产成人综合一区二区三区| 久久精品亚洲一区| 欧美日韩美女在线观看| 92版电视剧仙鹤神针在线观看|