15.简单hash
hash ----哈希
把任意长度的输入,通过散列算法变换成固定长度的输出,输出值为散列值,是一种压缩映射,散列值的空间远小于输入空间
哈希算法就是复杂的算法,输入值可以为任意文件字符视频音频等,经过运算后,变成一个固定长度的数字值
特点:1,不能从输出值(结果)来推断输入值,所以是不可逆的算法,
hash("曹娜")---》1009112343270334701
关闭终端再次hash也是不同的值
2,100g文件和"曹娜"哈希出来的时间一样段。极快速度
用途:
1,密码,hash的基础上,无法反推,md5算法。
2,文件完整性校验 下载软件包,可以用md5sum来检测软件是否被修改过
3,数字签名 私钥和公钥
基于hash的数据类型
dict
字典的key,都是要经过hash的,key 唯一,无序,不可变,
查询速度超级快,不受字典大小影响,简单的逻辑是把字典的key通过哈希算法,得到的hash值进行排序,在对排序好的hash值,进行2分法查找,14亿人只需通过30-31次