【发布时间】:2011-11-30 10:31:18
【问题描述】:
我工作的公司正在建立一个社交网络(就像许多其他人一样)。在使用用户登录系统时,我不确定要使用哪种散列。我知道永远不要使用 md5。我有一种有趣的方式来使用 sha512 和漩涡以及不断变化的盐。我的老板说他可能想让用户财务数据与登录信息相关联。语言是 PHP 只是为了让你知道。
【问题讨论】:
我工作的公司正在建立一个社交网络(就像许多其他人一样)。在使用用户登录系统时,我不确定要使用哪种散列。我知道永远不要使用 md5。我有一种有趣的方式来使用 sha512 和漩涡以及不断变化的盐。我的老板说他可能想让用户财务数据与登录信息相关联。语言是 PHP 只是为了让你知道。
【问题讨论】:
无论您做什么,都不要使用您自己的密码哈希函数。你能做的最糟糕的事情就是使用加密原语“有一种有趣的工作方式”。像 bcrypt 这样的算法是由专业密码学家开发和分析的,他们比我、你或 StackOverflow 上的任何人都做得更好。
当您认为自己正在加强安全性时,很容易削弱您的安全性。
此外,对于财务信息,请不要使用您自己的密码哈希函数。说两遍就够重要了。
【讨论】:
【讨论】:
要记住的两个明显的事情,每个人都喜欢忘记:
密码哈希实际上为站点安全本身添加了nothing。这只是假设您的用户群被盗并在其他地方针对相同用户的假想情况。
没有具有超随机盐的散列算法可以保护愚蠢的密码,如“joe”、“123”或“password”。甚至更复杂的密码,例如“v5dsa”。
所以,你要么用强密码要求折磨你的用户,要么就忘记密码散列这样愚蠢的事情。
或者只是警告他们不要为您的网站使用相同的密码并完成您的任务!
哈希问题在这个网站上被夸大了。
一个普通的所谓“PHP 程序员”认为,如果他们不使用“损坏”的 MD5(尽管他们不知道这是什么意思),那么他们是安全的。
可怜的 OP 就是我所说的一个完美的例子:
他正在做 2 个不同的哈希并将它们分开存储。认为这将有助于保护他们的网站:)
这就是问题所在。普通用户认为密码散列与站点安全有关。虽然不是。
【讨论】: