【发布时间】:2011-11-07 22:50:36
【问题描述】:
我正在使用 gsoap 的 wsseapi 插件,并希望存储散列的 sha1 密码而不是纯文本。我花了很多时间尝试各种方法来对纯文本密码进行哈希处理以进行存储。
谁能建议一种对密码进行哈希处理的方法,以便稍后根据客户端发送的用户名令牌摘要对其进行验证?
我似乎无法获取客户端密码来针对我存储的哈希进行身份验证。
【问题讨论】:
我正在使用 gsoap 的 wsseapi 插件,并希望存储散列的 sha1 密码而不是纯文本。我花了很多时间尝试各种方法来对纯文本密码进行哈希处理以进行存储。
谁能建议一种对密码进行哈希处理的方法,以便稍后根据客户端发送的用户名令牌摘要对其进行验证?
我似乎无法获取客户端密码来针对我存储的哈希进行身份验证。
【问题讨论】:
不要推出自己的加密货币;使用社区熟知并接受的方案,例如 PBES2(由PKCS#5 v2.1 指定)。如果幸运的话,你会找到一个现成的实现(提示:OpenSSL 可能会)。
【讨论】:
不存储纯文本密码很好。选择一个被开发为非常快速计算的哈希是..不是那么聪明。在http://www.tarsnap.com/scrypt.html 阅读更多关于“密钥派生”的信息。基本上它会减慢“计算哈希密码”的速度很多,因此攻击者尝试使用蛮力的速度会减慢。
【讨论】:
好像两边都需要明文密码。这样在服务器上,存储的密码使用客户端创建的随机数进行哈希处理,然后比较密码哈希值。
我认为客户端可能有一种方法可以输入普通的字母数字密码,而服务器可以检索相同密码的预存储散列版本以进行比较。由于随机数、时间戳等原因,这似乎是不可能的
【讨论】: