【问题标题】:what is difference between crypto hash and hashtable hashes in python?python中的加密哈希和哈希表哈希有什么区别?
【发布时间】:2016-03-20 03:18:06
【问题描述】:

什么是加密哈希,有哪些算法?它与 python 中的普通哈希有何不同?如何确定使用哪个?

前: 加密哈希函数
你好--aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
地狱--44d634fa6b81353bc3ed424879ffd013501ade53

散列函数
哈希(“你好”)-1267296259
哈希(“地狱”)-1267296266

请帮帮我

【问题讨论】:

  • 加密哈希似乎是用SHA-1算法生成的,而python内置hash()则正常。对于加密哈希,阅读更多here。但是,由于问题不完全(且具体)与算法有关,因此更适合 Cryptography SE

标签: python python-2.7 hash cryptography


【解决方案1】:

加密哈希函数不同于哈希表哈希函数。一个主要区别是加密散列函数被设计为没有散列冲突弱点。在大多数情况下,它们被设计为更加安全和不可逆转。但是像 hash 这样的 Hashtable 哈希函数更快,旨在用于快速访问内存中的项目或比较项目等。

假设有两个不同的场景。如果要将密码存储在数据库中,则必须使用 pbkdf2 之类的东西,这样它更安全,生成速度也更慢,以防止暴力破解。但在另一种情况下,您只想拥有一组项目并检查该集合中是否存在项目。您可以简单地存储项目(例如类)的 32 位或 64 位散列,并快速比较散列而不是类。

例如对于字符串“hello”,计算和存储1267296259 要快得多,因为它是一个 32 位整数,计算和存储 aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d 更安全且更慢。

附:一个很好的例子是here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-27
    • 1970-01-01
    • 2013-03-21
    • 2012-04-03
    • 1970-01-01
    • 2012-09-12
    • 2023-03-04
    • 2011-08-31
    相关资源
    最近更新 更多