hash 哈希 把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。
这种转换就是一种压缩映射,也就是,散列值的空间远远小于输入的空间。
它的输出可以是字符串,可以是数据,可以是任何文件,经过哈希运算后,变成一个固定长度的输
出,该输出就是哈希值。哈希算法有一个很大的特点,就是你不能从结果推算出输入,所以称为不
可逆算法。
这种转换就是一种压缩映射,也就是,散列值的空间远远小于输入的空间。
它的输出可以是字符串,可以是数据,可以是任何文件,经过哈希运算后,变成一个固定长度的输
出,该输出就是哈希值。哈希算法有一个很大的特点,就是你不能从结果推算出输入,所以称为不
可逆算法。
特性
1.不可逆
1.不可逆
2.计算极快
哈希的用途
1.密码 md5加密算法 (我们现在网站的密码都是基于hash,保证输入得出的结果值一直一致)
2.文件完整性校验 md5值
3.数字签名
A----------->B
A 天王盖地虎 私钥 -------加密,把情报进行哈希,生成一段hash值(摘要信息),把摘要信息加密
把原文+加了密的摘要信息一同发送给B
B 宝塔镇河妖 公钥--------解密,把摘要信息解密,得到hash值。B对源文件进行hash,也得到一个
hash值,拿到这个值跟a发过来的值进行比较,如果一致,代表情报发送者是A本人
基于 hash 的类型
dict 的 key 都是经过hash运算
key 唯一
key 不可变
查询速度快,且不受 dict 大小影响
二分法
set 天生去重
1.密码 md5加密算法 (我们现在网站的密码都是基于hash,保证输入得出的结果值一直一致)
2.文件完整性校验 md5值
3.数字签名
A----------->B
A 天王盖地虎 私钥 -------加密,把情报进行哈希,生成一段hash值(摘要信息),把摘要信息加密
把原文+加了密的摘要信息一同发送给B
B 宝塔镇河妖 公钥--------解密,把摘要信息解密,得到hash值。B对源文件进行hash,也得到一个
hash值,拿到这个值跟a发过来的值进行比较,如果一致,代表情报发送者是A本人
基于 hash 的类型
dict 的 key 都是经过hash运算
key 唯一
key 不可变
查询速度快,且不受 dict 大小影响
二分法
set 天生去重