不可能"unhash"密码(至少不能以一般,有效和可靠的方式 - 你可以猜出一些密码,这是攻击者所做的,你想要从MD5迁移,因为攻击者可能会有一些成功).因此,迁移将随着时间的推移而扩展:一些密码将使用MD5进行哈希处理,其他密码将使用SHA-256进行哈希处理.要验证密码时:
因此,密码是动态迁移的; 要完全摆脱MD5,你必须等待很长时间和/或销毁长时间未访问过的帐户.您需要能够区分MD5哈希与SHA-256哈希,这很容易,因为它们具有不同的大小(MD5为16字节,SHA-256为32字节).你也可以添加一面旗帜或任何其他类似的噱头.
请注意,使用散列函数的原始单个应用程序散列密码是一种非常糟糕的方法,在安全方面,并且用SHA-256替换MD5不会真正改善.您对密码进行哈希处理,以便获得对数据库的读访问权限的攻击者不会自己学习密码.为了真正防止攻击者猜测密码,您还需要"盐"(每个密码随机数据,与散列密码一起存储)和适当慢的散列函数(即数千甚至数百万的嵌套散列函数调用).有关详情,请参阅此答案.简短的回答:既然你正在设想迁移,那就做聪明的事情并迁移到bcrypt,而不是SHA-256(参见security.stackexchange 上的答案).
| 归档时间: |
|
| 查看次数: |
640 次 |
| 最近记录: |