因此,我正在处理有关网站的问题,我是中级程序员,我在听说过其他朋友使用的网站上购物。当我注册我的帐户时,他们将我的密码以纯文本形式发送回我的电子邮件。我一直认为,以html格式,如果您对密码进行哈希处理并将其发送到服务器,将无法以纯文本形式发送回密码。我假设我创建该帐户的网站正在对密码进行哈希处理,但是我无法得知。我既不是安全专家,也不是其他任何人,但是我很确定他们没有对密码进行哈希处理,并且可能将我的数据以纯文本格式存储在他们的服务器上。我的结论正确吗?
答案 0 :(得分:2)
如果您的密码是在注册过程中发送给您的,则可能是服务器在收到密码后仍立即以明文形式发送了密码,然后对其进行了哈希处理和正确存储。
但这仍然不是最佳实践,明文密码不应通过不安全的渠道(例如电子邮件)发送。
当然,在这种情况下,他们不可能在另一个请求中再次发送它。如果发生这种情况,那实际上意味着他们不会将其存储为散列。
答案 1 :(得分:0)
如果正确地对其进行了哈希处理并确保了安全性,则他们应该无法以纯文本格式看到它。如果他们可以轻松访问它,那么黑客也可以。
答案 2 :(得分:0)
还有另一种存储密码的方法,即加密。这样,应用程序服务器将存储一个加密密钥以对用户的密码进行加密并将其存储在数据库中。
当用户尝试登录时,他们会加密登录尝试的新输入密码,以确保密码匹配。
万一密码丢失,他们可以通过使用应用程序服务器上的密钥对其进行解密,从而将用户的密码发送回给他们。
如果应用服务器受到威胁,攻击者可以像应用服务器一样访问所有密码。
绝不应该将其密码发送回用户。如果用户不记得了,就必须强迫用户生成新的用户。
有关更多讨论,请参见Difference between Hashing a Password and Encrypting it