0

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

Bcrypt.HashPassword("password") 

我知道生成的哈希包含盐信息,但是在创建哈希时它没有得到盐参数。

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

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

4

1 回答 1

0

从理论上讲,您应该执行以下操作,P给定的密码在哪里:

  1. 生成一个加密强的随机盐S
  2. Compute H = Hash(S + P),其中Hash是一种加密强度高的散列算法。
  3. 为当前用户存储S并在您的数据库中。H

P'在身份验证时,给自称同一用户的某人的候选密码,当且仅当验证用户H == Hash(S + P')

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

盐不是它应该只在内部创建的东西。它应该给你盐来存储散列盐+密码。

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

是的。

于 2014-04-13T03:31:43.197 回答