zoukankan      html  css  js  c++  java
  • 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());
        }

  • 相关阅读:
    「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
    「日常训练」Ice Cave(Codeforces Round 301 Div.2 C)
    「日常训练」School Marks(Codeforces Round 301 Div.2 B)
    「知识学习」二分图的最大匹配、完美匹配和匈牙利算法(HDU-2063)
    「日常训练」 Counting Cliques(HDU-5952)
    「日常训练」Maximum Multiple(HDU-6298)
    「日常训练」 Yukari's Birthday(ZOJ-3665)
    「Python」Numpy equivalent of MATLAB's cell array
    「Python」Convert map object to numpy array in python 3
    「Python」matplotlib备忘录
  • 原文地址:https://www.cnblogs.com/linsu/p/2491993.html
Copyright © 2011-2022 走看看