gpt4 book ai didi

mysql - 我如何像 asp.net identity 一样手动散列密码

转载 作者:行者123 更新时间:2023-11-28 23:08:20 26 4
gpt4 key购买 nike

我们有一个遗留的桌面应用程序,它在用户表中存储纯文本密码。我在 asp.net mvc 4.5 上创建了相同的网络版本。

我正在使用 asp.net identity 2.0,并且已经将 aspnetusers 表虚拟链接到 users 表。为此,我运行了一个脚本,该脚本将用户表中的所有用户插入到 aspnetusers 表中,并且两个表中的 ID 保持不变。[我什至无法将单个列添加到现有表中以使其使用 asp.net 标识。]

我们的要求是 Web 和桌面应用程序的密码相同。

现在我的问题是如何创建所有这些密码的散列并将它们放入 aspnetusers 表的密码散列中。 asp.net身份是怎么做到的?我能否在 sql 中复制相同的机制,以便每当 users 表中发生密码更改时,我都可以运行触发器并重新计算我的 aspnetusers 表的哈希值?

最佳答案

我找到了答案 here

public static string HashPassword(string password)
{
byte[] salt;
byte[] buffer2;
if (password == null)
{
throw new ArgumentNullException("password");
}
using (Rfc2898DeriveBytes bytes = new Rfc2898DeriveBytes(password, 0x10, 0x3e8))
{
salt = bytes.Salt;
buffer2 = bytes.GetBytes(0x20);
}
byte[] dst = new byte[0x31];
Buffer.BlockCopy(salt, 0, dst, 1, 0x10);
Buffer.BlockCopy(buffer2, 0, dst, 0x11, 0x20);
return Convert.ToBase64String(dst);
}

关于mysql - 我如何像 asp.net identity 一样手动散列密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46575622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com