视频上看到的例子,对着视频打了一遍代码,测试失败,上网搜索后改了一下测试成功,不知道为什么跟视频上打的一样的代码视频上测试的正确而我的测试出错的,先不管了,先记下来,以备后用!

Code
/// <summary>字符串加解密
///
/// </summary>
public class Encrypt
{
private SymmetricAlgorithm mCSP;
private const string CIV = "oo*/^fsA"; //密钥, 只能是8位
private const string CKEY = "f123$dew"; //初始化向量, 只能是8位
public Encrypt()
{
mCSP = new DESCryptoServiceProvider();
}
/// <summary>加密字符串
///
/// </summary>
/// <param name="Value"></param>
/// <returns></returns>
public string EncryptString(string Value)
{
ICryptoTransform ct;
MemoryStream ms;
CryptoStream cs;
byte[] byt;
// 这里视频上用的是Convert.FromBase64String(CKEY/CIV),但是我用的话总是出现错误,什么大小不对
ct = mCSP.CreateEncryptor(Encoding.ASCII.GetBytes(CKEY), Encoding.ASCII.GetBytes(CIV));
byt = Encoding.UTF8.GetBytes(Value);
ms = new MemoryStream();
cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
cs.Write(byt, 0, byt.Length);
cs.FlushFinalBlock();
cs.Close();
return Convert.ToBase64String(ms.ToArray());
}
/// <summary>解密字符串
///
/// </summary>
/// <param name="Value"></param>
/// <returns></returns>
public string DecryptString(string Value)
{
ICryptoTransform ct;
MemoryStream ms;
CryptoStream cs;
byte[] byt;
ct = mCSP.CreateDecryptor(Encoding.ASCII.GetBytes(CKEY), Encoding.ASCII.GetBytes(CIV));
byt = Convert.FromBase64String(Value);
ms = new MemoryStream();
cs = new CryptoStream(ms, ct, CryptoStreamMode.Write);
cs.Write(byt, 0, byt.Length);
cs.FlushFinalBlock();
cs.Close();
return Encoding.UTF8.GetString(ms.ToArray());
}
}
测试代码:
static void Main(string[] args)
{
Console.Write("请输入要加密的字符串:");
string str = Console.ReadLine();
Console.WriteLine("加密后:" + new Encrypt().EncryptString(str));
Console.ReadLine();
Console.Write("请输入要解密的字符串:");
string str2 = Console.ReadLine();
Console.WriteLine("解密后:" + new Encrypt().DecryptString(str2));
Console.ReadLine();
}
测试效果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具