.net使用des加密算法

来源:互联网 发布:ch341a编程器软件1.30 编辑:程序博客网 时间:2024/04/28 12:13

        String desKey = "BFYB_KEY";//键

        String desIV = "BFYB_IIV";//向量

        /// <summary>

        /// DES加密
        /// </summary>
        /// <param name="originText"></param>
        /// <returns></returns>
        public String desEncode(String originText)
        {
            byte[] tmpDesKey = System.Text.ASCIIEncoding.ASCII.GetBytes(desKey);
            byte[] tmpDesIV = System.Text.ASCIIEncoding.ASCII.GetBytes(desIV);
            //
            DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
            MemoryStream memStream = new MemoryStream();
            CryptoStream cryptoStream = new CryptoStream(memStream, desProvider.CreateEncryptor(tmpDesKey, tmpDesIV), CryptoStreamMode.Write);


            StreamWriter streamWriter = new StreamWriter(cryptoStream);
            streamWriter.Write(originText);
            streamWriter.Flush();
            cryptoStream.FlushFinalBlock();
            streamWriter.Flush();
            String retStr = Convert.ToBase64String(memStream.GetBuffer(), 0, (int)memStream.Length);
            
            return retStr;
        }
        /// <summary>
        /// DES解密
        /// </summary>
        /// <param name="originText"></param>
        /// <returns></returns>
        public String desDecode(String originText)
        {
            byte[] tmpDesKey = System.Text.ASCIIEncoding.ASCII.GetBytes(desKey);
            byte[] tmpDesIV = System.Text.ASCIIEncoding.ASCII.GetBytes(desIV);
            //
            byte[] originBytes;
            try
            {
                originText.Replace("_%_", "/");
                originText.Replace("-%-", "#");
                originBytes = Convert.FromBase64String(originText);
            }
            catch(Exception exception)
            {
                return null;
            }
            DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider();
            MemoryStream memStream = new MemoryStream(originBytes);
            CryptoStream cryptoStream = new CryptoStream(memStream, desProvider.CreateDecryptor(tmpDesKey, tmpDesIV), CryptoStreamMode.Read);
            StreamReader steamReader = new StreamReader(cryptoStream);
            String retString = steamReader.ReadToEnd();


            return retString;
        }
0 0
原创粉丝点击