在ColdFusion中,与将加密客户端和服务器之间的密码的数据库进行用户登录密码比较的最佳方法是什么?
我注意到http://pajhome.org.uk/crypt/md5/index.html
上有一个javascript版本但是如果没有启用JavaScript,可以为用户做些什么?
答案 0 :(得分:8)
这些要点并不特别针对coldfusion,但我觉得我必须说明:
哈希的目的是让很难弄清楚要发送服务器的内容,以便生成与数据库匹配的字符串。如果您只是将客户端给出的字符串与数据库条目匹配,那么您的目的就会失败。
它坏了。有办法打败它。不要使用它。
TLS旨在使客户端与服务器之间的通信对任何其他人都不透明。最大的问题是最近的BEAST攻击,如果你正确实施它将无法正常工作。
据我们所知,SHA-256非常安全。最着名的攻击是将时间复杂度降低2位,这不会使攻击变得切实可行。
用于2 ^ 50位空间的预先计算的彩虹表将需要256 PB的存储空间,而用于2 ^ 256空间的彩虹表将需要更多的存储空间。但是,由于生日问题,可以想象如果你没有为哈希加盐,你的某些用户的帐户可能会受到损害。
如果您的数据库遭到入侵,哈希可能意味着您的普通用户密码会在几年内找到。如果你有数千次,那将意味着数千年。
其他一些要点,以解决您的错误观念: