Python中的加密哈希和哈希表哈希有什么区别?

4
什么是加密散列和一些算法?它与 Python 中的普通哈希函数有什么不同?如何确定使用哪个?
例如:加密散列函数
hello--aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
helld--44d634fa6b81353bc3ed424879ffd013501ade53 哈希函数
hash("hello") -1267296259
hash("helld") -1267296266
请帮助我。

似乎加密哈希是使用SHA-1算法生成的,而普通哈希则使用Python内置的hash()函数。关于加密哈希,请阅读此处。然而,由于这个问题并不完全(且明确地)涉及算法,因此这更适合Cryptography SE - Reti43
1个回答

5
密码学哈希函数与Hashtable哈希函数不同。一个主要区别是密码哈希函数旨在不具备哈希冲突弱点。它们被设计为更安全且在大多数情况下不可逆转。但是Hashtable哈希函数(如hash)更快,被设计用于快速访问内存中的项目或比较项目等。
假设有两种不同的情况。如果您想在数据库中存储密码,必须使用类似pbkdf2这样的东西,以便更安全,因此生成速度较慢,以防止暴力破解。但在另一种情况下,您只想拥有一组项目,并检查该集合中是否存在某个项目。您可以简单地存储项目(例如类)的32位或64位哈希值,并快速比较哈希值,而不是类。
例如,对于字符串“hello”,计算和存储32位整数1267296259要快得多,而计算和存储aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d要更安全且速度较慢。
P.S. 一个好的例子在这里

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接