或者编辑商店以引入特定密钥?
我的目标是从使用成员资格提供程序的旧版ASP.NET Webforms站点设置密钥。因此,它在web.config中有一个MachineKey元素,其中指定了ValidationKey。
如果我可以在.NET Core Data Protection中设置此密钥,我相信我可以使用类似于此处给出的示例的代码实现密码哈希:https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/consumer-apis/password-hashing?view=aspnetcore-2.1。使用正确的密钥集,我应该能够生成与遗留站点匹配的哈希值。
但似乎数据保护的整个理念是它为您自动设置密钥,而您应该与它们无关。有办法解决这个问题吗?
编辑:
在ASP.NET WebForms中,使用成员资格提供程序来为用户散列密码,我在web.config中有以下条目:
<system.web>
<machineKey validationKey="*********"
decryptionKey="*********"
validation="HMACSHA256"
decryption="AES" />
</system.web>
当密码被散列时,“validationKey”属性中的值参与散列,不是吗?如果validationKey不同,那么给定相同的密码/ salt组合,产生的哈希会有所不同吗?或者这是我出错的地方?
如果以上是正确的,那么我的问题是,我如何在ASP.NET Core中使用相同的键值,这样当我使用相同的密码/ salt组合进行哈希时,我生成的哈希值与我在遗留数据库?如何为.NET Core提供validationKey值以进行哈希?或者它甚至没有参与?