+12 投票
分类:Python编程与实践 | 用户: (250 分)

1个回答

+2 投票
用户: (8.0k 分)
采纳于 用户:
 
已采纳

Python的hash方法是将原始的数据对象转化为hash值,由于其不可逆性,广泛应用于数据加密(比如很多网站的密码是通过md5加密),如果题主具备数据结构的相关知识,应该知道hash的计算方式有多种,这里简要介绍一下最基本的除数取余。

> 比如说对于两个数11和12,人为的设置一个除数3,那么通过取余操作可以得到11和12的在该条件下的hash值2和0。

以上就是一种简单的hash操作,但是这种简单的除数取余会带来一个问题就是hash碰撞,即两个不同的数据具有相同的hash值,因此,需要更复杂的hash算法来避免这个问题。

除了以上简单的取余操作,现在有很多复杂的hash加密算法,比如md5和sha系列。

在python中可以通过hash()的方式对数据进行hash操作,也可以通过python的hashlib库进行md5和sha hash操作,其相关文档放在最后,可以参考。

python中hash()方法的官方文档Built-in Functions — Python 3.7.14 documentation

python中hash以及hashlib的介绍Python中hash算法_A-L-Kun的博客-CSDN博客_python 哈希

这里有sha1的hash算法加密流程,感兴趣可以自行研究hash 算法计算过程 - zhangyukun - 博客园 (cnblogs.com)

欢迎来到 爱可可Q&A ,有什么问题可以尽管在这里提问,你将会收到其他成员的热心回答。
...