【问题标题】:C# MVC 5 : How to hash passwordC# MVC 5:如何散列密码
【发布时间】:2019-08-19 01:17:29
【问题描述】:

有人可以帮助我,我尝试创建 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);

但是,我不知道函数是否存在?

你能告诉我是否有一个功能,如果没有,我需要在应用程序中更改登录系统吗?

谢谢

【问题讨论】:

    标签: c# model-view-controller passwords


    【解决方案1】:

    您可以使用 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();
    }
    

    【讨论】:

    • 感谢您的功能,但您的功能不像 mvc userManager 那样散列?
    • 给我一个来自 UserManager 的示例哈希字符串。
    【解决方案2】:

    UserManger 有一个属性PasswordHasher。如果可用,请使用这个来创建您的哈希,否则实现并设置您自己的 PasswordHasher。

    【讨论】:

      猜你喜欢
      • 2017-02-09
      • 2013-06-07
      • 2011-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-19
      • 2020-10-05
      • 2021-09-26
      相关资源
      最近更新 更多