码迷,mamicode.com
首页 > 其他好文 > 详细

Des对称可逆加密

时间:2020-04-25 15:27:47      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:new   加密   图片   优点   private   stat   ems   速度   key   

    /// <summary>

    /// DES AES Blowfish

    ///  对称加密算法的优点是速度快,

    ///  缺点是密钥管理不方便,要求共享密钥。

    /// 可逆对称加密  密钥长度8

    /// </summary>

using System.Security.Cryptography;

  public class DesEncrypt

    {

        //8位长度

        private static string KEY = "ruanmou1";

        private static byte[] rgbKey = ASCIIEncoding.ASCII.GetBytes(KEY.Substring(0, 8));

        private static byte[] rgbIV = ASCIIEncoding.ASCII.GetBytes(KEY.Insert(0, "w").Substring(0, 8));

 

        /// <summary>

        /// DES 加密

        /// </summary>

        /// <param name="strValue"></param>

        /// <returns></returns>

        public static string Encrypt(string strValue)

        {

            DESCryptoServiceProvider dsp = new DESCryptoServiceProvider();

            using (MemoryStream memStream = new MemoryStream())

            {

                CryptoStream crypStream = new CryptoStream(memStream, dsp.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);

                StreamWriter sWriter = new StreamWriter(crypStream);

                sWriter.Write(strValue);

                sWriter.Flush();

                crypStream.FlushFinalBlock();

                memStream.Flush();

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

            }

        }

 

        /// <summary>

        /// DES解密

        /// </summary>

        /// <param name="EncValue"></param>

        /// <returns></returns>

        public static string Decrypt(string EncValue)

        {

            DESCryptoServiceProvider dsp = new DESCryptoServiceProvider();

            byte[] buffer = Convert.FromBase64String(EncValue);

 

            using (MemoryStream memStream = new MemoryStream())

            {

                CryptoStream crypStream = new CryptoStream(memStream, dsp.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);

                crypStream.Write(buffer, 0, buffer.Length);

                crypStream.FlushFinalBlock();

                return ASCIIEncoding.UTF8.GetString(memStream.ToArray());

            }

        }

    }

 

string desEn1 = DesEncrypt.Encrypt("张三李四");

 string desDe1 = DesEncrypt.Decrypt(desEn1);

技术图片

 

Des对称可逆加密

标签:new   加密   图片   优点   private   stat   ems   速度   key   

原文地址:https://www.cnblogs.com/anyihen/p/12773184.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!