У меня есть проект, в котором нам нужно перенести много пользователей, у которых есть свой пароль в виде простого текста, в новую базу данных, где мы будем вводить пароль.Преобразование простого пароля в EF Asp.Net Identity PasswordHash
В новой системе используется Entity Framework, и ее необходимо аутентифицировать с помощью инфраструктуры Identity Asp.Net.
Я обнаружил, что могу сгенерировать на C# правильный хешированный пароль, который может читать без проблем.
public static string HashPassword(string password)
{
byte[] salt;
byte[] buffer2;
using (var 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);
}
Есть ли что-то подобное в SQL, которые я мог бы использовать в INSERT заявление образуют ВЫБРАТЬ к другой таблице?
Не хотите использовать [SQL Server CLR integration] (https://msdn.microsoft.com/en-us/library/w2kae45k (v = vs.90) .aspx)? – jjj
@jjj Интересно, позвольте мне изучить этот путь, я никогда не использовал интеграцию CLR, но это могло бы сделать работу –
@jjj Я сделал тест, и он сработал. Это довольно медленно использовать, но, я думаю, это того стоит. Чтобы дать вам идею, она проходит от 7 секунд до 18 минут :) –