hash:一般翻译叫做散列,也有直接音译为哈希的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值 这种转换是一种压缩映射,也就是,散列值的空间通常远远小于输入的空间,不同的输入可能会散列成相同的输出,所以不能从散列值的唯一来确定输入值简单的说:就是一种讲将任意长度的消息压缩到某一固定长度的消息摘要的函数
特征:hash值的计算过程是依据这个值的一些特征计算的,这就要求hash的值必须固定, 因此被hash的值是不可变的
用途:
文件签名
md5加密
密码验证 (abc) = hash(abc)<--------------> mysql--存入hash(abc)
md5加密
密码验证 (abc) = hash(abc)<--------------> mysql--存入hash(abc)
>>> hash('linyaohong')
8444049371664993037
>>> hash('lin')
7635507639435108081
>>> hash((1,2,3)) #元祖可以被hash
2528502973977326415
>>> hash([1,2,3]) #列表不可被hash
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'