1. 程式人生 > >C# DES 加密解密(二)

C# DES 加密解密(二)

一、程式碼整理:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Security;  
using System.Security.Cryptography;  
using System.IO;  
namespace ConsoleApplication1  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            Console.WriteLine(EncryptDES("aaaaaaaaaaaaaaaa", "22222222"));//加密  
            Console.WriteLine(DecryptDES(EncryptDES("aaaaaaaaaaaaaaaa", "22222222"), "22222222"));//解密  
        }  
        //預設金鑰向量  
        private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };         
        /// DES加密字串          
        /// 待加密的字串  
        /// 加密金鑰,要求為8位  
        /// 加密成功返回加密後的字串,失敗返回源串   
        public static string EncryptDES(string encryptString, string encryptKey)  
        {  
            try  
            {  
                byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));  
                byte[] rgbIV = Keys;  
                byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);  
                DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();  
                MemoryStream mStream = new MemoryStream();  
                CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);  
                cStream.Write(inputByteArray, 0, inputByteArray.Length);  
                cStream.FlushFinalBlock();  
                return Convert.ToBase64String(mStream.ToArray());  
            }  
            catch  
            {  
                return encryptString;  
            }  
        }  
        ///   
        /// DES解密字串          
        /// 待解密的字串  
        /// 解密金鑰,要求為8位,和加密金鑰相同  
        /// 解密成功返回解密後的字串,失敗返源串  
        public static string DecryptDES(string decryptString, string decryptKey)  
        {  
            try  
            {  
                byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);  
                byte[] rgbIV = Keys;  
                byte[] inputByteArray = Convert.FromBase64String(decryptString);  
                DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();  
                MemoryStream mStream = new MemoryStream();  
                CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);  
                cStream.Write(inputByteArray, 0, inputByteArray.Length);  
                cStream.FlushFinalBlock();  
                return Encoding.UTF8.GetString(mStream.ToArray());  
            }  
            catch  
            {  
                return decryptString;  
            }  
        }  
    }  
}   

 

 

更多:

C# DES加密、解密

C# datetime.now.tostring("yyyy/MM/dd") 顯示為yyyy-MM-dd的解決辦法

C#Enum