资讯专栏INFORMATION COLUMN

url 散列加密

yanest / 1083人阅读

摘要:加密类填充关键字计算填充的关键字,并保存他们进行异或运算进行异或运算散列函数测试类用键值构造字符串类把散列放在一个多带带的变量里面并且在数组中注销掉该变量用键值对构造字符串运行结果

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_在线支付

    摘要:支付平台支付成功后,会往网站的某个回调发送数据。回调接收数据并根据队则,生成检验串,并判断合法性。返回散列值字符串。 基本介绍 用途广泛,很多网站都继承了在线支付功能,如paypal,网银在线,易宝支付,支付宝,快钱等第三方平台. 原理 基本上,每个银行都有自家的支付接口,为什么不直接连接到银行的接口去支付,而需要通过第三方支付? 银行众多,每家的银行用的技术不一样,比如招行使用.n...

    Channe 评论0 收藏0
  • 加密解密算法介绍

    摘要:加密解密算法介绍算法目前常见有加密算法,散列算法,编码算法,使用位关键字作为流加密算法加密技术通常分为两大类对称式和非对称式。对称性加密算法有用途对称加密算法用来对敏感数据等信息进行加密数据加密标准,速度较快,适用于加密大量数据的场合。 加密解密算法介绍 算法目前常见有: 加密算法,散列算法,Base64(编码算法),https(SSL使用40位关键字作为RC4流加密算法) 加密技术通...

    ThinkSNS 评论0 收藏0
  • PHP加密与实际应用

    摘要:加密算法以字符十六进制数字形式返回散列值。加密算法是加密是的干扰码,使编码更安全可选的盐值字符串。返回的数据可能是二进制的 数据加密可以简单的理解为:明文(文件或者数据)-->算法处理-->不可读的密文,进而达到加密的效果。 php中的几种加密方式 md5加密算法 crypt算法 sha1加密算法 URL编码技术编码 base64编码 其中 md5、crypt、sha1 都是单向加...

    lakeside 评论0 收藏0
  • 慕课网_《Java实现Base64加密》学习总结

    摘要:时间年月日星期一说明本文部分内容均来自慕课网。多用于网络加密。散列函数函数或消息摘要函数主要作用散列函数用来验证数据的完整性。 时间:2017年4月10日星期一说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:https://github.com/zccodere/s...个人学习源码:https://github.com/zccodere...

    verano 评论0 收藏0
  • 手动实现一个jsonwebtoken

    摘要:利用消息认证码可以确保消息不是被别人伪造的,消息认证码是带密钥的函数,由于有了一个,所以会比有更好的安全性。所以需要采用的就是算法,该算法主要利用的是不对称加密算法,利用私钥进行签名,公钥验证数据的完整性。 写在前面 本文会到你了解jwt的实现原理,以及base64编码的原理。同时本人也简单的实现了一下jwt的生成,点这里。 jwt是什么 本质上它是一段签名的 JSON 格式的数据。由...

    zhangke3016 评论0 收藏0

发表评论

0条评论

yanest

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<