我正在尝试制作自己的密码管理器,我想用一些加密哈希算法来存储我输入的密码。我研究了什么是最好的,每个人似乎都有不同的意见。最好是将它们保存在数据库中还是保存在程序的本地?最好的密码哈希算法是什么?我看到有BCrypt和SCrypt这样的东西,但我无法得到一个明确的答案,什么是最好的。
我研究了一下什么是最好的,每个人似乎都有不同的意见。
很明显! (见下文)
最好是将它们保存在数据库中还是保存在程序的本地?
使用种子哈希的意义在于,如果攻击者成功地掌握了数据,他们就会感到困难。 他们现在必须使用 "蛮力 "的方法来寻找与密码相匹配的明文密码。 正确实施的种子意味着必须针对每个单独的散列进行,而不是批量进行;例如,使用所谓的 "彩虹表"。
但事实是,如果攻击者能够窃取哈希值和种子,他们可能可以破解任何弱密码。
所以,"本地 "与 "数据库 "实际上取决于其中哪一个提供了更安全的存储。 这不是我们能回答的。 这取决于这两个选项在>>你的<<系统中的安全程度,这取决于你如何实现它们,以及你(或其他人)如何保护它们运行的系统的安全。
而密码的最佳哈希算法是什么呢?
任何目前被认为安全的加密哈希算法都可以。 至于 "最好的 "则是见仁见智的问题。
我看到有BCrypt和SCrypt这样的东西,但我无法得到什么是最好的明确答案。
其中任何一个都可以。
"最好的 "是一个见仁见智的问题。
你唯一的办法就是在你的电脑上加一个 确凿 答案是,如果你能用时光机,去100年左右的未来,然后阅读IT安全史书,看看哪些哈希算法实现最后被破解。
我的建议是:如果你无法决定,就用 "二进制钱币决策装置"1 根据你以前(希望是广泛的!)的研究,在似乎是最好的替代品之间做出选择。
这里有一些链接来帮助你的研究。
最后,你应该考虑你想用密码管理器保护的是什么。 它是否重要到足以证明大量的实施努力?
1 - 抛硬币......