C#对字符串加密解密

 

    • 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;  
    •             }  
    •         }  
    •     }  
    • }   
posted @ 2015-08-30 14:52  撷一程  阅读(602)  评论(0编辑  收藏  举报