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

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

php中常用的加密解密算法的講解(代碼)

2020-03-22 17:32:50
字體:
來源:轉載
供稿:網友
本篇文章給大家帶來的內容是關于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教程

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
富二代精品短视频| 精品亚洲一区二区三区| 国产成人在线一区| 久久艳片www.17c.com| 国产欧美在线播放| 日韩av电影在线免费播放| 欧美专区日韩视频| 在线播放国产精品| 欧美性猛交xxxx免费看| 国产成人精品久久二区二区91| 国产精品久久久久久五月尺| 久久久天堂国产精品女人| 欧美精品在线免费观看| 欧美极品少妇与黑人| 国产va免费精品高清在线观看| 亚洲剧情一区二区| 国产精品视频一区二区三区四| 成人美女av在线直播| 中文一区二区视频| 日韩av中文字幕在线免费观看| 亚洲激情久久久| 国内外成人免费激情在线视频| 国内精品久久久久| 成人国产精品久久久| 亚洲国产精品美女| 欧美风情在线观看| 97在线视频精品| 国产精品久久久久久亚洲影视| 国产精品偷伦一区二区| 成人免费视频在线观看超级碰| 日韩中文字幕在线播放| 91精品国产综合久久久久久蜜臀| 国产精品白嫩美女在线观看| 亚洲国产精品网站| 日韩久久免费视频| 欧美高清自拍一区| 国产精品jvid在线观看蜜臀| 欧美人与性动交a欧美精品| 亚洲欧美日韩在线一区| 日韩免费观看在线观看| 51色欧美片视频在线观看| 日韩极品精品视频免费观看| 亚洲精品日韩欧美| 91免费精品视频| 日韩在线视频中文字幕| 91高清免费视频| 精品国产欧美一区二区五十路| 国产精品久久久久久久久久久久久久| 亚洲人成在线一二| 97超级碰在线看视频免费在线看| 亚洲午夜未满十八勿入免费观看全集| 久久久久久久久久久亚洲| 成人深夜直播免费观看| 国产大片精品免费永久看nba| 国产精品普通话| 免费成人高清视频| 日韩经典第一页| 日韩在线一区二区三区免费视频| 久久国产精彩视频| 欧美日韩国产综合视频在线观看中文| 91在线视频成人| 亚洲精品一区av在线播放| 国产成人精品久久久| 三级精品视频久久久久| 91成人性视频| 在线电影av不卡网址| 欧美大人香蕉在线| 日韩风俗一区 二区| 久久久之久亚州精品露出| 欧美在线播放视频| 日本欧美一二三区| 日韩成人av一区| 国产精品日韩一区| 97**国产露脸精品国产| 亚洲片国产一区一级在线观看| 亚洲成人三级在线| 日韩av观看网址| 岛国av一区二区| 国产日韩av在线| 久久精品国产精品亚洲| 久久夜色精品亚洲噜噜国产mv| 中文字幕国产日韩| 成人午夜激情免费视频| 久久亚洲综合国产精品99麻豆精品福利| 97在线日本国产| 亚洲大胆人体在线| 正在播放欧美视频| 欧美怡红院视频一区二区三区| 国产精欧美一区二区三区| 国产成人激情小视频| 日韩中文字幕视频| 夜夜狂射影院欧美极品| 中文字幕亚洲无线码a| 最近2019中文字幕mv免费看| 色樱桃影院亚洲精品影院| 欧美伦理91i| 国产精品自拍偷拍视频| 成人午夜两性视频| 亚洲精品97久久| 中文日韩电影网站| 日韩欧美成人精品| 欧美性色视频在线| 国产va免费精品高清在线观看| 色悠悠久久88| 久久99久久99精品中文字幕| 久久九九免费视频| 欧美激情视频一区二区| 78色国产精品| 亚洲91精品在线| 好吊成人免视频| 欧美日韩久久久久| 性金发美女69hd大尺寸| 久久久99久久精品女同性| 在线观看久久久久久| 久久精品国亚洲| 久久久久久国产免费| 久久视频在线观看免费| 成人欧美在线视频| 亚洲人线精品午夜| 清纯唯美亚洲综合| 久久久91精品| 日韩av在线直播| 超碰精品一区二区三区乱码| 日本视频久久久| 成人网中文字幕| 亚洲欧美中文日韩在线| 在线日韩日本国产亚洲| 久久久国产精品免费| 欧美成人全部免费| 日韩av一卡二卡| 中文字幕亚洲欧美一区二区三区| 91日韩在线播放| 97色在线观看免费视频| 日韩高清中文字幕| 成人在线观看视频网站| 欧美激情免费视频| 久久男人的天堂| 国产激情久久久久| 亚洲性xxxx| 亚洲第一级黄色片| 久久免费精品日本久久中文字幕| 日韩国产欧美精品一区二区三区| 久久久免费高清电视剧观看| 欧美大秀在线观看| 日韩视频免费在线观看| 国产欧美日韩中文| 欧美第一黄网免费网站| 久久久噜久噜久久综合| 久久综合网hezyo| 精品免费在线视频| 欧美最顶级丰满的aⅴ艳星| 午夜精品一区二区三区在线播放| 亚洲精品丝袜日韩| 欧美最猛性xxxxx(亚洲精品)| 国外成人免费在线播放| 91久久精品国产91久久性色| 日本精品久久久久影院| 国产精品成人一区二区三区吃奶| 欧美专区在线观看| 国产精品嫩草影院久久久| 蜜月aⅴ免费一区二区三区| 一本色道久久88精品综合| 欧美伊久线香蕉线新在线| 成人做爰www免费看视频网站|