首页 > 解决方案 > 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 个散列密码。

标签: c#xamarin

解决方案


使用 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 是加盐密码以创建安全的哈希码,您必须定义和分配安全码


推荐阅读