C#自定义字符串加密解密方法类

it2026-02-11  12

1、创建类DES

添加引用:

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

2、

/// <summary> /// DES加密解密 /// </summary> public class DES { static string encryptKey = "Oyea";//定义密钥 #region 加密字符串 /// <summary> /// 加密字符串 /// </summary> /// <param name="str">要加密的字符串</param> /// <returns>加密后的字符串</returns> public static string Encrypt(string str) { DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();//实例化加/解密类对象 byte[] key = Encoding.Unicode.GetBytes(encryptKey);//定义字节数组,用来存储密钥 byte[] data = Encoding.Unicode.GetBytes(str);//定义字节数组,用来存储要加密的字符串 MemoryStream MStream = new MemoryStream();//实例化内存流对象 //使用内存流实例化加密流对象 CryptoStream CStream = new CryptoStream(MStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write); CStream.Write(data, 0, data.Length);//向加密流中写入数据 CStream.FlushFinalBlock();//释放加密流 return Convert.ToBase64String(MStream.ToArray());//返回加密后的字符串 } #endregion #region 解密字符串 /// <summary> /// 解密字符串 /// </summary> /// <param name="str">要解密的字符串</param> /// <returns>解密后的字符串</returns> public static string Decrypt(string str) { DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();//实例化加/解密对象 byte[] key = Encoding.Unicode.GetBytes(encryptKey);//定义字节数组,用来存储密钥 byte[] data = Convert.FromBase64String(str);//定义字节数组,用来存储要解密的字符串 MemoryStream MStream = new MemoryStream();//实例化内存流对象 //使用内存流实例化解密流对象 CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key, key), CryptoStreamMode.Write); CStream.Write(data, 0, data.Length);//向解密流中写入数据 CStream.FlushFinalBlock();//释放解密流 return Encoding.Unicode.GetString(MStream.ToArray());//返回解密后的字符串 } #endregion }

3、在Program.cs中使用

//测试自定义类DEScrypt Console.WriteLine("请输入要加密的字符串:"); string strOld = Console.ReadLine(); string strNew = DES.Encrypt(strOld); Console.WriteLine("加密后的字符串:{0}",strNew); Console.WriteLine($"解密后的字符串:{DES.Decrypt(strNew)}"); Console.ReadKey();

结果如图:

最新回复(0)