C#DES加密解密字符串

时间:2022-06-14 05:13:06

1.添加引用

using System.Security.Cryptography; using System.IO;

2.添加默认密匙向量

//默认密钥向量 private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };

3.添加加密解密类

/// <summary> /// DES加密字符串 /// </summary> /// <param name="encryptString">待加密的字符串</param> /// <param name="encryptKey">加密密钥,要求为8位</param> /// <returns>加密成功返回加密后的字符串,失败返回源串 </returns> 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;     } } /// <summary> /// DES解密字符串 /// </summary> /// <param name="decryptString">待解密的字符串</param> /// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param> /// <returns>解密成功返回解密后的字符串,失败返源串</returns> 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;     } }

4.调用方法(在文章结尾,有相关类,编译后直接调用即可)

//返回加密后的字符串EncryptStr string EncryptStr = EncryptDESString.EncryptDES("This is a Test", "password");   MessageBox.Show(EncryptStr); //解密字符串EncryptStr string DecryptStr = EncryptDESString.DecryptDES(EncryptStr, "password"); MessageBox.Show(EncryptStr);

加密后:

C#DES加密解密字符串

解密后:

C#DES加密解密字符串