摘要:加密類填充關鍵字計算填充的關鍵字,并保存他們進行異或運算進行異或運算散列函數測試類用鍵值構造字符串類把散列放在一個多帶帶的變量里面并且在數組中注銷掉該變量用鍵值對構造字符串運行結果
1.hmvc.php 加密類
_func = $method; //填充關鍵字 if(strlen($key) > 64) { $key = pack("H32",$method($key)); } if(strlen($key) < 64) { $key = str_pad($key, 64, chr(0)); } //計算填充的關鍵字,并保存他們 $this->_ipad = substr($key, 0, 64)^str_repeat(chr(0x36), 64);//進行異或運算; $this->_opad = substr($key, 0, 64)^str_repeat(chr(0x5c), 64);//進行異或運算; } /** * 散列函數 */ function hash($data) { $func = $this->_func; $inner = pack("H32",$func($this->_ipad.$data)); $digest = $func($this->_opad.$inner); return $digest; } }
2.測試類 test.php
$val) { $data .=$key . $val; $ret [] = "$key=$val"; } $h = new Crypt_HMVC(SCRIPT_KEY,"md5"); $hash = $h->hash($data); $ret [] ="hash=$hash"; return join("&",$ret); } echo ""vars")) ."">err!";
3.script.php類
$val) { $data .= $key . $val; $ret [] = "$key=$val"; } $h = new Crypt_HMVC(SCRIPT_KEY,"md5"); if($hash != $h->hash($data)) { return false; } else { return true; } } $arr = $_GET; if(!create_parameters($arr)) { die("dweep someone tempered with our parameters"); } else { echo "good you are success"; } 運行test.php
結果
good you are success
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/23197.html
摘要:加密算法以字符十六進制數字形式返回散列值。加密算法是加密是的干擾碼,使編碼更安全可選的鹽值字符串。返回的數據可能是二進制的 數據加密可以簡單的理解為:明文(文件或者數據)-->算法處理-->不可讀的密文,進而達到加密的效果。 php中的幾種加密方式 md5加密算法 crypt算法 sha1加密算法 URL編碼技術編碼 base64編碼 其中 md5、crypt、sha1 都是單向加...
摘要:時間年月日星期一說明本文部分內容均來自慕課網。多用于網絡加密。散列函數函數或消息摘要函數主要作用散列函數用來驗證數據的完整性。 時間:2017年4月10日星期一說明:本文部分內容均來自慕課網。@慕課網:http://www.imooc.com教學示例源碼:https://github.com/zccodere/s...個人學習源碼:https://github.com/zccodere...
摘要:利用消息認證碼可以確保消息不是被別人偽造的,消息認證碼是帶密鑰的函數,由于有了一個,所以會比有更好的安全性。所以需要采用的就是算法,該算法主要利用的是不對稱加密算法,利用私鑰進行簽名,公鑰驗證數據的完整性。 寫在前面 本文會到你了解jwt的實現原理,以及base64編碼的原理。同時本人也簡單的實現了一下jwt的生成,點這里。 jwt是什么 本質上它是一段簽名的 JSON 格式的數據。由...
閱讀 3392·2021-09-22 15:17
閱讀 2740·2021-09-02 15:15
閱讀 1750·2019-08-30 15:54
閱讀 2001·2019-08-30 14:02
閱讀 2529·2019-08-29 16:58
閱讀 2988·2019-08-29 16:08
閱讀 1330·2019-08-26 12:24
閱讀 1653·2019-08-26 10:41