• 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());
        }

  • 相关阅读:
    28 对10个数进行排序
    27 求100之内的素数
    26 请输入星期几的第一个字母,判断一下是星期几
    25 一个五位数,判断它是不是回文数
    24 给一个不多于5位的正整数
    23 请问第5个人多大?
    22 1+2!+3!+...+5!的和
    快捷生成getter和setter方法
    Error creating bean with name 'as' defined in class path resource
    CentOS7-1810 系统DNS服务器BIND软件配置说明
  • 原文地址:https://www.cnblogs.com/linsu/p/2491993.html
Copyright © 2020-2023  润新知