Kel*_*ron 2 security bcrypt.net
我过去曾使用过许多不同的哈希算法,但我认为它们都是确定性的.
我刚刚切换了一些代码来使用BCrypt.Net,我不得不承认,当我的所有比较测试都失败时,我完全被困住了.
在我的测试中查找错误的尴尬时间后,我意识到我的假设哈希是确定性的是完全错误的.有一种有效的验证方法,它很容易修复代码,但我想了解更好的内容.
它是在内部腌制价值还是其他事情在继续?
它是在内部腌制价值观吗?
是的.bcrypt不仅仅是一个原始哈希函数,它包含salt和一些其他位,以允许在没有额外输入的情况下验证哈希:
$2a$12$q6r.MpvzPrUszrWLgaRdlOs04kPcjk0syCDelrzES9O8.UNlHON.u
^^ ^^ ^^^^^^^^^^^^^^^^^^^^^^
| | \- salt
| \---- work factor
\------- format
Run Code Online (Sandbox Code Playgroud)
您正在使用的API不会暴露它,因为您通常不需要操作盐,但它就在那里,您不需要添加自己的API.