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

首頁 > 學院 > 邏輯算法 > 正文

php三種常用的加密解密算法(介紹)

2020-03-22 16:58:19
字體:
來源:轉載
供稿:網友
本文給大家介紹php的三種常用的加密解密算法,有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所幫助。

方法一:

/** * @param $string 要加密/解密的字符串 * @param string $operation 類型,ENCODE 加密;DECODE 解密 * @param string $key 密匙 * @param int $expiry 有效期 * @return stringfunction authcode($string, $operation = DECODE , $key = encrypt , $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));}

使用:

$string = 加密字符串 // 加密$encode = authcode($string, ENCODE echo $encode . /br // a2f4bSYyUrTum1nAAA9X9BrC4Z3DZazcSa4eLcvDoCnmYc1LTdvtqS4aCds// 解密$decode = authcode($encode, DECODE echo $decode; // 加密字符串

方法二:

/** * @param $string 要加密/解密的字符串 * @param $operation 類型,E 加密;D 解密 * @param string $key 密鑰 * @return mixed|stringfunction encrypt($string, $operation, $key = encrypt ) $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));}

使用:

$string = 加密字符串 // 加密$encode = encrypt($string, E echo $encode . /br // 0Jzym5UzkRKH726U7Pyt7ixzLz9YEEA// 解密$decode = encrypt($encode, D echo $decode; // 加密字符串

方法三:

/** * @param $data 要加密的字符串 * @param $key 密鑰 * @return stringfunction encrypt($data, $key = encrypt ) $key = md5($key); $x = 0; $len = strlen($data); $l = strlen($key); $char =  for ($i = 0; $i $len; $i++) { if ($x == $l) { $x = 0; $char .= $key{$x}; $x++; $str =  for ($i = 0; $i $len; $i++) { $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256); return base64_encode($str);
for ($i = 0; $i $len; $i++) { if (ord(substr($data, $i, 1)) ord(substr($char, $i, 1))) { $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1))); } else { $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1))); return $str;}

使用:

$string = 加密字符串 // 加密$encode = encrypt($string);echo $encode . /br // Gr0DHeHrRw7KGBLcSOzj// 解密$decode = decrypt($encode);echo $decode; // 加密字符串

總結:以上就是本篇文的全部內容,希望能對大家的學習有所幫助。更多相關教程請訪問php編程從入門到精通全套視頻教程!

相關推薦:

php公益培訓視頻教程

以上就是php三種常用的加密解密算法(介紹)的詳細內容,PHP教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情啊啊啊| 在线观看日韩av| 精品国产一区久久久| 成人黄色大片在线免费观看| 亚洲欧美日韩一区二区在线| 国产精品av网站| 97国产精品人人爽人人做| 成人国产精品av| 欧美激情欧美激情在线五月| 国内免费精品永久在线视频| 亚洲三级免费看| 欧美精品成人91久久久久久久| 98视频在线噜噜噜国产| 亚洲国产高清高潮精品美女| 亚洲自拍偷拍在线| 国产日韩综合一区二区性色av| 最近2019好看的中文字幕免费| 91在线观看欧美日韩| 精品国产欧美成人夜夜嗨| 亚洲新声在线观看| 欧美日产国产成人免费图片| 亚洲精品久久久久国产| 亚洲另类激情图| 日韩精品极品在线观看播放免费视频| 国产精品成久久久久三级| 日韩久久精品电影| 这里只有精品在线播放| 色综合久久88| 黄色一区二区在线观看| 欧美成人免费一级人片100| 久久综合久中文字幕青草| 91精品国产91久久久久久久久| 久久色精品视频| 亚洲r级在线观看| 大胆欧美人体视频| 国产一区二区视频在线观看| 91久久精品久久国产性色也91| 亚洲国产精彩中文乱码av在线播放| 中文字幕欧美亚洲| 亚洲人av在线影院| 伊人伊成久久人综合网站| 亚洲另类xxxx| 国产日韩欧美在线视频观看| 777国产偷窥盗摄精品视频| 久久久久北条麻妃免费看| 国产精品福利无圣光在线一区| 亚洲一区亚洲二区| 欧美日韩午夜激情| 成人黄色中文字幕| 热99精品里视频精品| 亚洲bt欧美bt日本bt| 欧美日韩在线视频一区| 亚洲深夜福利视频| 亚洲精品www| 亚洲欧美成人一区二区在线电影| 欧美久久精品午夜青青大伊人| 日韩不卡在线观看| 91久久精品国产91久久| 中文字幕国产亚洲| 国产精品中文字幕久久久| 91免费综合在线| 日韩**中文字幕毛片| 欧美精品一本久久男人的天堂| 欧美最近摘花xxxx摘花| 国产伦精品一区二区三区精品视频| 亚洲影视九九影院在线观看| 国内精品小视频在线观看| 日韩亚洲国产中文字幕| 亚洲欧美中文日韩在线v日本| 97久久精品在线| 国产午夜精品全部视频播放| 91免费欧美精品| 日韩亚洲欧美中文高清在线| 久久久久久久久91| 精品久久久999| 97超碰国产精品女人人人爽| 欧美激情2020午夜免费观看| 在线视频欧美日韩精品| 欧美日韩国产丝袜美女| 日韩精品免费观看| 成人两性免费视频| 日韩专区在线播放| 亚洲欧美日韩一区二区在线| 久久精品国产综合| 中日韩美女免费视频网站在线观看| 成人国产在线视频| 国产主播在线一区| 欧美日韩国产成人| 亚洲日本成人女熟在线观看| 久久久久亚洲精品成人网小说| 成人av.网址在线网站| 欧美激情视频一区二区三区不卡| 亚洲自拍偷拍网址| 国产精品永久免费观看| 欧美在线日韩在线| 国产成人精品免费久久久久| 亚洲美女性视频| 亚洲免费av网址| 国产精品久久久亚洲| 91网站在线看| 亚洲欧美中文日韩v在线观看| 欧美一区三区三区高中清蜜桃| 欧美激情亚洲另类| 91在线观看欧美日韩| 亚洲第一区中文字幕| 亚洲xxxx妇黄裸体| 欧美成人精品一区二区| 日本欧美一级片| 国产精品一区二区三区在线播放| 国产精品视频精品| 亚洲精品国产成人| 亚洲精品中文字| 中日韩美女免费视频网站在线观看| 欧美精品免费播放| 国产日韩av在线播放| 色悠久久久久综合先锋影音下载| 国产精品一区二区性色av| 92版电视剧仙鹤神针在线观看| 亚洲最大福利网| 欧美理论片在线观看| 久久精品久久精品亚洲人| 久久久精品日本| 欧美高清视频一区二区| 精品视频9999| 欧美精品久久一区二区| 91久久精品国产91性色| 欧美成人免费播放| 国产欧美久久久久久| 丝袜亚洲另类欧美重口| 国产丝袜一区二区| 中文字幕在线观看亚洲| 久久久噜噜噜久久久| 97视频在线观看网址| 欧美性视频精品| 亚洲精美色品网站| 亚洲高清av在线| 亚洲欧美第一页| 亚洲国产精品久久久久久| 国模gogo一区二区大胆私拍| 国内精品久久久久久久| 久久久亚洲国产天美传媒修理工| 国产精品美女呻吟| 国产精品电影在线观看| 91日本在线观看| 亚洲最大成人免费视频| 中文字幕综合一区| 91中文精品字幕在线视频| 欧美亚洲成人精品| 精品亚洲男同gayvideo网站| 亚洲视频电影图片偷拍一区| 免费91在线视频| 亚洲成**性毛茸茸| 亚洲无限av看| 亚洲国产成人精品电影| 中文字幕精品www乱入免费视频| 国产亚洲视频在线观看| 在线成人免费网站| 成人网在线免费观看| 最新亚洲国产精品| 日韩欧美综合在线视频| 国产日本欧美一区| 亚洲国产精品va在线看黑人动漫| 国产原创欧美精品| 美日韩精品免费视频|