c# - xamarin 中的哈希密码以匹配数据库哈希密码
问题描述
我对 xamarin 很陌生,目前我需要在将用户密码发送到 api 之前对其进行哈希处理,以验证通过网络发送纯文本存在安全风险。
在我的 Web 应用程序中,我使用 Microsoft.AspNet.Identity 来哈希密码并将它们保存到数据库中
public UserManager<IdentityUser> UserManager { get; private set; }
string strPasswordHash = UserManager.PasswordHasher.HashPassword(viewModel.Password);
我试图获得与此相同的哈希算法,但没有成功。所以我想知道这是否有可能以某种方式在 xamarin 中获得相同的哈希值
因此,当对以下测试密码“TestP@ssw0rd”进行散列处理时,我会得到“AKtowbhuu47Dn4Pk8r4SM4zKo6P7N/N27afp6aDBL4sroWzOiXucrSG6kiHrjU2Ayw==”那么我将如何在 xamarin 中将相同的密码散列到使用 Microsoft.AspNet.Identity.PasswordHasher() 的我的 api 到验证 2 个散列密码。
解决方案
使用 System.Security.Cryptography
public string MD5Hash(string input)
{
System.Security.Cryptography.SHA512Managed sha512 = new System.Security.Cryptography.SHA512Managed();
Byte[] EncryptedSHA512 = sha512.ComputeHash(System.Text.Encoding.UTF8.GetBytes(string.Concat(input, securityCode)));
sha512.Clear();
return Convert.ToBase64String(EncryptedSHA512);
}
输入是您的明文,securityCode 是加盐密码以创建安全的哈希码,您必须定义和分配安全码
推荐阅读
- javascript - Jquery 找不到带“+”的类
- java - 如何在 JDBC url 中访问 `classpath:` 的父级?
- r - 在每个图中绘制回归线方程(2 阶)
- reactjs - 将 HTML5 视频标签与 create-react-app 一起使用
- php - 静态图像的PHP图像输出似乎小于静态图像本身,如何?
- html - 单击时如何从复选框中获取值并将其显示在提交之前的顶部
- ruby-on-rails - SVG 用于Angular CLI 应用程序的 src,但不适用于 Rails 应用程序
- javascript - Javascript 仅在字段中生成 1 个字符
- java - 通过从输入文本框中传递参数,通过 jQuery AJAX 调用 Java EE REST 服务
- javascript - 清理过时的手机浏览器缓存?