gpt4 book ai didi

VB.Net 密码哈希实践

转载 作者:行者123 更新时间:2023-12-01 13:01:45 25 4
gpt4 key购买 nike

我正在尝试保护即将移至公共(public)服务器的网站。我刚刚将密码散列函数添加到我的所有登录脚本中。我正在使用 FormsAuthentication.HashPasswordForStoringInConfigFile(pw, method) 来执行此操作。我有一个关于我正在使用的过程的问题,以及它对于网络服务器是否安全:

  1. 密码通过 HTTPS 以纯文本形式发送到服务器
  2. 服务器在 Users 表中查找用户的 Salt(几个随机字符)及其散列和加盐存储的密码
  3. 明文密码附加盐
  4. 使用上述函数对新字符串进行哈希运算
  5. 将新散列的版本与存储的版本进行比较
  6. 如果相等,则允许登录
  7. 如果不相等,登录尝试将记录在 session 变量中,最多 3 次,然后锁定用户的计算机访问登录页面,直到管理员验证 IP 地址并解锁。

这看起来对吗?我只是看不出盐在这种方法中是如何有效的……不管怎样,我所做的就是添加盐和哈希。这被认为是加密吗?还是我错过了一步?我记得读过像 SHA1 和 MD5 这样的哈希算法不是加密算法,那么还需要做什么?

最佳答案

没错。 salt 用于防止彩虹表攻击,其中使用 MD5 散列的常见作品字典试图获得条目。使用 salt 可以确保即使他们有单词的 MD5 哈希值,它也不会起作用,因为他们不知道 salt。

MD5算法是一种单向散列算法,不是加密值。不同之处在于,一旦对值进行哈希处理,就无法恢复到原始值。加密允许您解密数据并取回原始值。所以你是对的,它们不一样,你的密码没有加密,它们是散列的。这意味着如果有人忘记了密码,您将无法将密码发送给他们。您必须为他们提供一种重置密码的方法。这也意味着任何有权访问数据库的人都无法访问原始密码。这很好,因为很多人在任何地方都使用相同的密码,如果您可以访问大量用户名和密码,那么有人可能会决定开始尝试登录银行/信用卡网站。

您正在做的是推荐的做法。

关于VB.Net 密码哈希实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5489543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com