【发布时间】:2015-02-12 21:19:59
【问题描述】:
我已经设法使用这种方法对密码进行加盐和哈希处理:
import hashlib, uuid
salt = uuid.uuid4().hex
hashed_password = hashlib.sha512(password + salt).hexdigest()
如何反转此过程以恢复实际密码?
更新:您应该从用户那里获取密码,对他们的密码应用相同的加盐和哈希方法,然后将其与最初加盐/散列的密码进行比较,看看它们是否匹配。这很有意义。
【问题讨论】:
-
如果多个密码可以散列到相同的值,我选择的方法发生这种情况的概率是多少?它必须非常低。
-
碰撞的概率真的很低。散列函数被设计为具有很大的熵,这意味着对于两个关闭的输入,输出将很远。散列函数将任何东西(无限空间)映射到大小为
2**XX 通常为 32 或 64 的有限空间中,因此会发生冲突,但由于强熵,任何具有几乎相同标记甚至相同数量标记的东西都会在哈希空间中彼此远离。
标签: python authentication hash passwords salt