C # MVC 5: как хешировать пароль - PullRequest
0 голосов
/ 28 марта 2019

Кто-то может мне помочь, я пытаюсь создать AspNetUser (таблица генерируется из логина mvc, добавлены некоторые атрибуты к этому базовому объекту), я хочу хэшировать партию точно так же, как функция User.Create (user, passwordToHash))

var user = new AspNetUser();
user.UserName = "admin@mail.com";
user.Email = "admin@mail.com";
user.Nickname = "SuperAdmin"; // added by me
user.EmailConfirmed = true;
string userPWD = "PassToHash123";
user.PasswordHash = // Need Help 
db.AspNetUsers.Add(user);
db.SaveChanges();

// function to create standard user which not work with my modified AspNetUser
var chkUser = UserManager.Create(user, userPWD);

Но я не знаю, существует ли функция?

Можете ли вы сказать мне, если есть функция, и если нет, мне нужно изменить систему входа в систему вприложение?

Thx

Ответы [ 2 ]

0 голосов
/ 28 марта 2019

UserManger имеет свойство PasswordHasher . Если возможно, используйте этот для создания своего хеш-кода и установите свой собственный PasswordHasher.

0 голосов
/ 28 марта 2019

Вы можете использовать алгоритм MD5 для хеширования вашего строкового пароля до 36 хэш-строки длиной.

public static string MD5Hash(string input)
{
   StringBuilder hash = new StringBuilder();
   MD5CryptoServiceProvider md5provider = new MD5CryptoServiceProvider();
   byte[] bytes = md5provider.ComputeHash(new UTF8Encoding().GetBytes(input));

   for (int i = 0; i < bytes.Length; i++)
   {
     hash.Append(bytes[i].ToString("x2"));
   }
   return hash.ToString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...