我试图确保一个即将被移动到公共服务器的网站。我刚刚完成了将密码散列函数添加到我的所有登录脚本。我使用FormsAuthentication.HashPasswordForStoringInConfigFile(pw, method)
这样做。我有一个关于我使用和它是否是安全的web服务器的进程问题:VB.Net密码散列做法
- 密码以纯文本格式通过HTTPS发送到服务器
- 服务器查找在用户表找到
- 明文密码被追加与盐
- 新的字符串使用上述功能
- 新凑版本进行比较散列用户的盐(几个随机字符)和它们的哈希和盐腌存储的密码存储的版本为
- 如果相等,则允许登录
- 如果不相等,登录尝试会记录在会话变量中,最多3次,然后锁定用户计算机访问登录页面,直到管理员验证IP地址并解锁。
这是否正确?我只是没有看到盐在这种方法中是如何有效的......无论如何,我所做的只是添加盐和散列。这是否被认为是加密?还是我错过了一个步骤?我记得读过像SHA1和MD5这样的散列算法不是加密算法,那还有什么需要做的?
密码永远不应加密,它们必须始终被哈希。 – rook 2011-03-30 18:59:11
谢谢,你说这很有趣。当它实际上只是散列化时,我一直称这种方法为“加密”。我对这个东西还是一个新的东西,所以我不知道有什么不同。只是将问题标题从“加密”改为“哈希” – Dexter 2011-04-01 19:34:03