2-09 hash函数

hash

Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

特征:

hash值得计算过程是依据这个值的一些特征计算的,这就要求被hash的值必须固定,因此被hash的值必须是不可变的。

不可变类型 可变类型
数字 列表
字符串  
元祖  

 

>>> hash('Alex')
-1713809831
>>> hash('abcd')
1485825800
>>> hash((1,5,3))
596794500
>>> hash([2,5,6])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'

用途:

文件签名

md5加密

密码验证

posted @ 2019-07-16 13:12  echo少儿编程  阅读(124)  评论(0编辑  收藏  举报