zoukankan      html  css  js  c++  java
  • c# DeS 加密解密字符串

     

    public static class DESSecurity

        {

            #region DES加密字符串

            /// <summary>

            /// DES加密方法

            /// </summary>

            /// <param name="plain">明文</param>

            /// <param name="key">密钥</param>

            /// <param name="iv">向量</param>

            /// <param name="isBase64">生成的密码是否用base64编码</param>

            /// <returns>密文</returns>

            public static String EncryptDES(string plain, byte[] rgbKey, byte[] rgbIV)

            {

                if (rgbKey.Length != 8) throw new ArgumentException("长度必须为8", "rgbKey");

                if (rgbIV.Length != 8) throw new ArgumentException("长度必须为8", "rgbIV");

                DESCryptoServiceProvider des = new DESCryptoServiceProvider();

                MemoryStream ms = new MemoryStream();

                CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);

                using (StreamWriter sw = new StreamWriter(cs))

                {

                    sw.Write(plain);

                    sw.Flush();

                    cs.FlushFinalBlock();

                    ms.Flush();

                    return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);

                }

            }

            #endregion

     

            #region DES解密字符串

            /// <summary>

            /// DES解密方法

            /// </summary>

            /// <param name="cipher">密文</param>

            /// <param name="key">密钥</param>

            /// <param name="iv">向量</param>

            /// <param name="isBase64">密文是否用base64解码</param>

            /// <returns>明文</returns>

            public static String DecryptDES(string cipher, byte[] key64, byte[] iv64)

            {

                byte[] bytesCipher;

                bytesCipher = Convert.FromBase64String(cipher);

                DESCryptoServiceProvider des = new DESCryptoServiceProvider();

                MemoryStream ms = new MemoryStream(bytesCipher);

                CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(key64, iv64), CryptoStreamMode.Read);

                using (StreamReader sr = new StreamReader(cs))

                {

                    return sr.ReadToEnd();

                }

            }

            #endregion

        }

  • 相关阅读:
    Unity3d获取APK签名及公钥的方法
    NGUI屏幕自适应
    转:Firefox中firebug和xpath checker工具的使用
    判断输入的手机号和价格是否合法
    IOS 四种保存数据的方式
    IOS开发控制器之间传值的几种小方法
    AlertView的三种弹窗模式
    多线程之NSThread、NSOperation及GCD
    IOS Key-Value Observing (KVO)
    UILabel的相关属性设置
  • 原文地址:https://www.cnblogs.com/xianzuoqiaoqi/p/1644207.html
Copyright © 2011-2022 走看看