C# 常用加密方法

1.一般加密用户的敏感数据,都采用不可逆的加密方式如:MD5

  示例:MD5

    System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile("lin.su", "MD5");

   HSA1:

   System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile("lin.su", "SHA1");

2.加密字符串

  示例:

  /// <summary>
    /// 加密字符串
    /// </summary>
    /// <param name="str">加密字符串对象</param>
    /// <param name="keys">密钥</param>
    /// <param name="rgbIv">初始化向量</param>
    /// <returns></returns>
    string EncryString(string str, byte[] keys, byte[] rgbIv)
    {
       
        byte[] strs = System.Text.Encoding.Unicode.GetBytes(str);

        //定义加密数据标准 DESCryptoServiceProvider
        System.Security.Cryptography.DESCryptoServiceProvider desc = new      System.Security.Cryptography.DESCryptoServiceProvider();
        System.IO.MemoryStream mStream = new System.IO.MemoryStream();

        System.Security.Cryptography.ICryptoTransform transform = desc.CreateEncryptor(keys, rgbIv);//加密对象
        System.Security.Cryptography.CryptoStream cStream = new System.Security.Cryptography.CryptoStream(mStream, transform, System.Security.Cryptography.CryptoStreamMode.Write);
        cStream.Write(strs, 0, strs.Length);
        cStream.FlushFinalBlock();
        return Convert.ToBase64String(mStream.ToArray());
    }

/// <summary>
    /// 解密字符串
    /// </summary>
    /// <param name="str">解密字符串对象</param>
    /// <param name="keys">密钥</param>
    /// <param name="rgbIv">初始化向量</param>
    /// <returns></returns>
    string DecryString(string str, byte[] keys, byte[] rgbIv)
    {
        byte[] strs = Convert.FromBase64String(str);

        System.Security.Cryptography.DESCryptoServiceProvider desc = new System.Security.Cryptography.DESCryptoServiceProvider();
        System.IO.MemoryStream mStream = new System.IO.MemoryStream();

        System.Security.Cryptography.ICryptoTransform transform = desc.CreateDecryptor(keys, rgbIv);//解密对象

        System.Security.Cryptography.CryptoStream cStream = new System.Security.Cryptography.CryptoStream(mStream, transform, System.Security.Cryptography.CryptoStreamMode.Write);
        cStream.Write(strs, 0, strs.Length);
        cStream.FlushFinalBlock();
        return System.Text.Encoding.Unicode.GetString(mStream.ToArray());
    }

原文地址:https://www.cnblogs.com/linsu/p/2491993.html