很多questions已asked关于hashing (网络)应用程序中的密码,但我遇到了不同的问题。我知道我当前正在开发的应用程序做得不够安全(只是sha1没有盐或任何东西),但是很难改变这一切突然。
我必须找到一种方法来为所有(± 50.000)用户实现新算法。我一直在考虑一些解决方案,但没有一个听起来正确。
1) 使用新密码向用户表添加第二列。每次用户通过身份验证时,我都会使用新的哈希值存储密码并丢弃旧的密码。这实际上意味着 sha1 需要数年时间才能逐步淘汰。
1.1) 执行上述操作,但刺激用户重新登录我们的系统以进行安全更新,但这确实感觉像是承认存在(预先)存在的安全漏洞。这不会符合我的管理层的喜好。
2) 重新验证所有用户并丢弃所有密码。这是非常严格的,也是用户背后的一个痛点。
你会如何解决这个问题?
最佳答案
您可以通过使用 sha1 哈希作为新的改进哈希实现的输入来扩展现有解决方案,您可以在其中添加盐等。然后,新解决方案将包括 sha1 步骤以及您可能想要的任何改进。
通过这种方式,您可以根据已有的哈希值计算新的哈希值,同时改进解决方案。
关于security - 如何在现有 Web 应用程序中逐步淘汰密码哈希算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25069989/