假设我们有一个客户端和一个服务器。如果客户端想要“连接”到服务器,它需要提供一个密码(明文,通过 https 传输)。如果客户要记住密码,就会打开很多漏洞。这些是可以避免的吗?
user1460217
问问题
348 次
1 回答
2
我假设您的意思是服务器是否要记住密码。客户记住密码是方便性和安全性之间的直接权衡,这里没有太多讨论。
通过“哈希”运行密码。这本质上是一个单向过程——您可以从密码获取哈希,但不能从哈希获取密码。在服务器端,您只存储哈希。当有人想要进行身份验证时,获取他们的密码,对其进行哈希处理,并将其与您存储的哈希值进行比较。您不必以这种方式以明文形式存储密码。
这是非常基本的密码处理内容。有一些微妙之处要让它正确。这里有一些关于 ac# 实现的讨论:Hash and salt passwords in C#
如果您的意思是客户记住密码,您仍然不需要存储密码本身。与服务器进行身份验证并让它返回一个在特定时间后过期的令牌。此令牌在有效时可用作登录凭据。您的客户只需要存储令牌。
于 2012-11-09T02:58:44.610 回答