【问题标题】:Hashing a password from user's password and nonce value从用户密码和 nonce 值散列密码
【发布时间】:2013-11-23 12:17:34
【问题描述】:

我正在使用一些第三方库(用 C# 编写,它的文档有点差......)事情是,其中一个是“登录”身份验证功能 我需要为其提供哈希密码

我对所有这些散列的事情还是有点缺乏经验,所以也许这里有人可以帮助我?

库文档说:“根据用户提供的密码和 Nonce 值生成密码哈希” 这个“nonce”值看起来像这样:“Xi8SCdy7FarblZe61qP9ijginknhPe15”(32 位哈希?)

但是我不知道应该使用什么样的哈希算法

有没有人有任何建议或示例如何在 C# 或 C++/CLI 中完成? 谢谢。

【问题讨论】:

  • 是否说明应该使用哪种哈希算法?
  • 对不起,我之前提到过,文档有点差,没有提到哈希算法

标签: c# hash passwords c++-cli nonce


【解决方案1】:

nonce 是一个仅使用一次的数字,在这种情况下,用于身份验证。比方说,如果攻击者在身份验证过程中获得了哈希密码,他仍然不需要原始密码,他可以只使用哈希,并且在服务器端具有相同的效果。使用随机数,散列是使用通常不会为不同的散列复制的值生成的。 你可以在这里找到更多信息:http://tyleregeto.com/article/a-guide-to-nonce

通常,服务器向客户端发送一个随机数,客户端将该随机数与密码结合起来,并通过散列算法运行。然后客户端将结果发送给服务器,服务器使用相同的随机数对它存储的密码运行相同的算法并比较结果。

【讨论】:

  • 感谢混乱。我知道随机数的目的;)
【解决方案2】:

我认为有两个问题:如何处理随机数,以及如何散列。 第二个是最重要的,因为我想没有人能回答,除了挖到图书馆。

第一部分有几个变体(至少我认为)并非都一样

  1. 连接密码和哈希,并哈希结果
  2. 散列密码,散列随机数,连接它们
  3. 哈希密码,与随机数连接

我不认为发送未经哈希处理的密码是一个有效的选择。第三个选项也感觉很奇怪,因为为什么不要求它们作为单独的实体呢? 所以我会说选项一和选项二是最有可能的,因为措辞,数字 1 最有可能:

从.....生成密码哈希

我承认,如果不知道哈希算法,这对您没有多大帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-16
    • 2011-02-18
    • 2010-09-24
    • 1970-01-01
    • 2011-06-23
    • 2018-01-20
    • 2015-02-17
    • 2018-07-29
    相关资源
    最近更新 更多