我正在使用来自第三方库的.NET Bcrypt哈希实现,它有创建哈希只需提供如下文本或密码的方法。
Bcrypt.HashPassword("password")
我知道生成的哈希包含salt信息,但在创建哈希时它不会获取salt参数。
Bcrypt在内部创建随机盐并使用它?
如果我不使用盐重载方法,会导致安全漏洞吗?
答案 0 :(得分:0)
从理论角度来看,您应该执行以下操作,其中P
是给定的密码:
S
。H = Hash(S + P)
,其中Hash
是加密强哈希算法。S
和H
。在身份验证时,为自称同一用户的人提供候选密码P'
,请仅当H == Hash(S + P')
验证用户。
Bcrypt是否在内部创建随机盐并使用它?
盐不是它应该只在内部创造的东西。它应该给你盐加盐盐+密码存储。
如果我不使用盐重载方法,会导致安全漏洞吗?
是