C# 为什么identity framework核心哈希密码都以相同的开头?

C# 为什么identity framework核心哈希密码都以相同的开头?,c#,hash,.net-core,asp.net-identity,C#,Hash,.net Core,Asp.net Identity,我正在构建一个应用程序,它使用dotnetcoreapi和identitycore进行用户管理。我正在调查我的数据库,当我看到PasswordHash字段中的所有字符串都以相同的字符开头时,我感到很惊慌:aqaaaaaaacqaaae,因为我认为salting不能正常工作。我现在意识到salt确实可以正常工作,因为密码散列的其余部分会随着每个密码的变化而变化,但现在我对这个神秘的前缀感到好奇 此密码哈希前缀在identity core中用于什么?密码不仅仅是一个密码。它有密码算法版本,一个sal

我正在构建一个应用程序,它使用dotnetcoreapi和identitycore进行用户管理。我正在调查我的数据库,当我看到
PasswordHash
字段中的所有字符串都以相同的字符开头时,我感到很惊慌:
aqaaaaaaacqaaae
,因为我认为salting不能正常工作。我现在意识到salt确实可以正常工作,因为密码散列的其余部分会随着每个密码的变化而变化,但现在我对这个神秘的前缀感到好奇


此密码哈希前缀在identity core中用于什么?

密码不仅仅是一个密码。它有密码算法版本,一个salt,一个hash等等。你的问题可能会被回答。有趣。因此,在没有PasswordSalt字段的情况下,identity core存储有关密码如何在密码散列的前17个字符中散列的信息?在我看来,这些字符不应该总是相同的,因为salt是随机生成的。这意味着前16个base64字符将是稳定的。Salt从13开始,其目标是使密码在许多存储系统(sqlserver、mysql、no-sql等)之间保持兼容,而不需要其他自定义列(Salt、timestamp等)。这也意味着与Identity Version X具有向前兼容性。