作用:保证数据一致性
在发送请求之前, 把url, 请求方式, 参数, 请求头, 随机字符串, 时间…混合在一起. 进行一个计算.
计算出来一个结果, 该过程被称为签名,把该结果随着请求一同发送给服务器(包括随机值, 时间)。
此时, 服务器接收到的是url, 请求方式, 参数, 请求头, 随机字符串, 时间… + 签名值
服务器会使用上述内容, 再次进行同样的操作. 会计算出来另一个结果,
让计算出来的结果和客户端传递过来的签名值进行对比. 如果一致. 数据就没有被更改过. 如果不一致, 数据就是被
调整过的. 该过程被称为验签
签名: 拿着请求中的各种数据, 进行混合, 计算
验签: 拿着请求中的各种数据, 进行混合, 计算
想要达到这样的效果, 算法的选择就很重要..
相同的数据计算出来的结果必须是一样的才可以.
算法(数据1) => 10086 不行的
算法(数据1) => 10081 不行的
不同的数据计算出来的结果, 极可能的不一样才行
算法(数据1) => 10086 不行的
算法(数据2) => 10086 不行的
一般的签名算法会采用hash算法来完成.
在众多的hash类的算法中, md5是非常好用的(计算快, 计算的结果比较小, 重复率低)
md5是摘要算法的一种. 所以呢, 会损失掉数据绝大部分特征. 不可还原的(记住).
评论