【发布时间】:2012-11-28 04:34:45
【问题描述】:
我知道在将其保存到数据库之前我应该 md5(password.salt)。但我有一些奇怪的问题: + 我是否也应该 md5 内容/文本字符串(使用密码作为盐)? 示例:如果数据库被泄露,攻击者无法读取已关闭论坛的内容 + 如果我不应该对内容进行 md5 处理,并将它们全部保存为纯文本,那么攻击者在手头有数据库时试图获取用户密码有什么意义?
【问题讨论】:
-
MD5 是一种hash 算法,而不是加密。如果您有一个只能由某些人阅读的“封闭论坛”,那么您可能需要考虑使用 gpg 之类的东西以及应该能够阅读内容的每个人的公钥来加密内容。然后他们可以用他们的私钥解密内容(当然他们不会发送给你)。除了最安全的应用程序之外,这对于所有应用程序来说都可能是多余的。
-
你不应该使用 md5(password.salt)。您应该使用专用的密码散列算法,例如 bcrypt。 md5 已损坏,不应被视为安全。其他“普通”哈希值(例如 SHA1 或 SHA2)也不适合安全密码存储。