Asp.Net中使用的加密是什么?

时间:2019-11-12 00:59:20

标签: c# asp.net password-encryption

美好的一天!

我是Asp.Net的新手,我想重新创建Asp.Net的注册。我正在尝试查找Asp.Net默认使用的加密代码和插入命令。如标题所示,我想知道使用的加密方法是什么?它是哈希,md5还是其他方法,我在哪里可以找到代码?

通常,注册后端代码具有此命令

        var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>();
        var signInManager = Context.GetOwinContext().Get<ApplicationSignInManager>();
        var user = new ApplicationUser() { UserName = Username.Text, Email = Username.Text };
        IdentityResult result = manager.Create(user, Password.Text);

我知道signInManager不是命令,我尝试检查IdentityResult但什么也没发现。

谢谢。

1 个答案:

答案 0 :(得分:1)

用于加密密码

string Password = EncryptString(Password.Text);
  

在这里,我正在使用UTF8加密密码。...因此,您可以存储   数据库中的加密密码...

public static string EncryptString(string str)
        {
            return Encrypt(str, "!#$a54?3");
        }

        private static string Encrypt(string stringToEncrypt, string sEncryptionKey)
        {

            byte[] key = { };
            byte[] IV = { 10, 20, 30, 40, 50, 60, 70, 80 };
            byte[] inputByteArray; //Convert.ToByte(stringToEncrypt.Length)
            try
            {
                key = Encoding.UTF8.GetBytes(sEncryptionKey.Substring(0, 8));
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();
                inputByteArray = Encoding.UTF8.GetBytes(stringToEncrypt);
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();
                return Convert.ToBase64String(ms.ToArray());
            }
            catch (System.Exception ex)
            {
                throw ex;
            }
        }

用于解密密码

  

以同样的方式解密密码

   public static string DecryptString(string str)
    {
        return Decrypt(str, "!#$a54?3");
    }

    private static string Decrypt(string stringToDecrypt, string sEncryptionKey)
    {

        byte[] key = { };
        byte[] IV = { 10, 20, 30, 40, 50, 60, 70, 80 }; //try {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF}
        byte[] inputByteArray = new byte[stringToDecrypt.Length];
        try
        {
            key = Encoding.UTF8.GetBytes(sEncryptionKey.Substring(0, 8));
            DESCryptoServiceProvider des = new DESCryptoServiceProvider();
            inputByteArray = Convert.FromBase64String(stringToDecrypt.Replace(" ", "+"));
            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key, IV), CryptoStreamMode.Write);
            cs.Write(inputByteArray, 0, inputByteArray.Length);
            cs.FlushFinalBlock();
            Encoding encoding = Encoding.UTF8;
            return encoding.GetString(ms.ToArray());

        }
        catch (System.Exception ex)
        {
            throw ex;

        }


    }

注意:-使用相同的密钥来加密和解密密码...这里我正在使用!#$ a54?3