摘要:加密类填充关键字计算填充的关键字,并保存他们进行异或运算进行异或运算散列函数测试类用键值构造字符串类把散列放在一个多带带的变量里面并且在数组中注销掉该变量用键值对构造字符串运行结果
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
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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 格式的数据。由...
阅读 3367·2021-09-22 15:17
阅读 2706·2021-09-02 15:15
阅读 1691·2019-08-30 15:54
阅读 1983·2019-08-30 14:02
阅读 2484·2019-08-29 16:58
阅读 2967·2019-08-29 16:08
阅读 1292·2019-08-26 12:24
阅读 1639·2019-08-26 10:41