Bcrypt生成没有盐的密码?

时间:2014-04-13 03:07:28

标签: c# .net hash bcrypt bcrypt.net

我正在使用来自第三方库的.NET Bcrypt哈希实现,它有创建哈希只需提供如下文本或密码的方法。

Bcrypt.HashPassword("password") 

我知道生成的哈希包含salt信息,但在创建哈希时它不会获取salt参数。

Bcrypt在内部创建随机盐并使用它?

如果我不使用盐重载方法,会导致安全漏洞吗?

1 个答案:

答案 0 :(得分:0)

从理论角度来看,您应该执行以下操作,其中P是给定的密码:

  1. 生成加密强随机盐S
  2. 计算H = Hash(S + P),其中Hash是加密强哈希算法。
  3. 在数据库中为当前用户存储SH
  4. 在身份验证时,为自称同一用户的人提供候选密码P',请仅当H == Hash(S + P')验证用户。

      

    Bcrypt是否在内部创建随机盐并使用它?

    盐不是它应该只在内部创造的东西。它应该给你盐加盐盐+密码存储。

      

    如果我不使用盐重载方法,会导致安全漏洞吗?