如何散列密码并将其存储起来以便以后使用其他摘要进行验证?

时间:2010-06-03 11:33:24

标签: c++ c passwords gsoap

我正在使用gsoap的wsseapi插件,并希望存储散列sha1密码而不是纯文本。我花了很多时间尝试各种方法来散列明文密码进行存储。

有人可以建议一种方法来对密码进行哈希处理,以便以后可以根据客户端发送的用户名令牌摘要进行验证吗?

我似乎无法获取客户端密码来对我存储的哈希进行身份验证。

3 个答案:

答案 0 :(得分:1)

不要滚动你自己的加密;使用社区众所周知并接受的方案,例如PBES2(由PKCS#5 v2.1指定)。如果你很幸运,你会找到一个现成的实现(提示:OpenSSL可能会这样做。)

答案 1 :(得分:0)

不存储纯文本密码是好的。选择一个开发得非常快的哈希是不是那么聪明。在http://www.tarsnap.com/scrypt.html阅读有关“密钥派生”的更多信息。基本上它会减慢“哈希密码的计算”很多,因此攻击者在尝试使用蛮力时会放慢速度。

答案 2 :(得分:0)

似乎双方都需要明文密码。这样,在服务器上,使用客户端创建的随机数对存储的密码进行哈希处理,然后比较密码哈希值。

我认为客户端可能有一种输入正常字母数字密码的方法,并且服务器可以检索预先存储的相同密码的哈希版本以进行比较。似乎这是不可能的,因为nonce,timestamp等