Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cryptography Bcrypt和salt密码-澄清?_Cryptography_Bcrypt - Fatal编程技术网

Cryptography Bcrypt和salt密码-澄清?

Cryptography Bcrypt和salt密码-澄清?,cryptography,bcrypt,Cryptography,Bcrypt,我使用的是加密实用程序,它实现了河豚密码 一个简单的场景是创建一个哈希密码+salt 有一件事我不明白他们实施它的方式 例如: var salt= BCryptHelper.GenerateSalt(12); Console.WriteLine(salt); var hashedPassword = BCryptHelper.HashPassword("myPassword",salt) ; Console.WriteLine(hashedPassword); Console.WriteLin

我使用的是加密实用程序,它实现了河豚密码

一个简单的场景是创建一个哈希密码+salt

有一件事我不明白他们实施它的方式

例如:

var salt= BCryptHelper.GenerateSalt(12);
Console.WriteLine(salt);

var hashedPassword = BCryptHelper.HashPassword("myPassword",salt) ;
Console.WriteLine(hashedPassword);
Console.WriteLine(BCryptHelper.CheckPassword("myPassword",hashedPassword));
输出:

$2a$12$RqHpb3v6MeaB5sj0wcasKO
$2a$12$RqHpb3v6MeaB5sj0wcasKO/QkBTgrfVRYk95sT.OGIdU.O/Ip4goi
True
在第一行中,我生成盐。 稍后,我会用盐对密码进行哈希运算

但看看响应,他们实际上是将其添加到散列密码中,而不是添加盐,然后对其进行散列

请注意,您确实在哈希密码中看到了salt:

我觉得这样做不对。 FWIW我们应该使用密码+盐,然后散列

例如:

您可以在图像中看到盐在最终结果中不可见

问题:


为什么他们要实现这样的散列加密密码?这条路对吗?盐在最终结果中可见不是很危险吗?

盐与散列一起存储,以便验证它

如果没有存储salt,就不可能验证散列,因为您不知道散列的完整输入(包括salt)


盐的作用是使每一个散列都不同;不要保密。

他们确实会对密码和盐进行哈希运算。然后它就被预先准备好了,因为要检查它需要知道以前用过哪种盐。这是一个比这里更重要的问题。请注意,这已经包括在内,因此请在之前搜索asking@tkausl杂碎盐应该放在最后结果之外。为什么?如果你不认识另一个,你就不能处理它们中的任何一个(杂碎和盐),把它们放在一起是有意义的。我不明白你想说什么。你不会“把它给任何人”。既不是肉馅,也不是盐。把它们放在一起或放在一边都不会改变什么,真的。盐不应该放在一边吗?我几乎可以肯定它应该在这里看到:-你可以将盐存储在明文中,而不需要任何形式的模糊或加密,但不要只分发给任何想要它的人。@RoyiNamir:为什么?盐和土豆条一样敏感,你也可以“不要把它给任何想要的人。”我同意这是强制性的。我认为除了最终结果之外,以可见的方式存储它是有点问题的。我想我知道为什么我会感到困惑。在一般情况下,您有散列的salt值和salt。所以你们有两个值,但在这里,在bcrypt格式中,他们把它合并成一个值,在解密时bcrypt已经理解了这个值\