我正在开发一个使用 MD5(无盐)对用户密码进行哈希处理的系统。我想使用 SHA-512 和盐更安全地存储密码。
虽然这很容易为将来的密码实现,但我还想改进现有的 MD5 散列密码,最好不要强迫所有用户更改密码。我的想法是只使用 SHA-512 和适当的盐来散列现有的 MD5 散列。然后我可以在数据库中设置一些标志,指示哪些密码是从纯文本散列的,哪些是从 MD5 散列中散列的。或者我可以在验证用户时尝试两者。或者甚至只是使用 MD5 和 SHA-512/salt 对新密码进行哈希处理,因此它们可以被视为与旧密码相同。
以编程方式,我认为这不会是一个问题,但我对加密/散列的了解不够,无法知道我是否通过将 SHA-512/salt 散列应用于已经经过 MD5 哈希处理的密码。我的第一直觉是,如果有的话,它会更强大,一个非常轻的键伸展。
我的第二直觉是我真的不知道我在说什么,所以我最好得到建议。有什么想法吗?