//---------------------------------------------------------------- // Copyright (C) 2004-2004 Crea.D Soft (www.Crea.com) // All rights reserved. // // Author : Nick // Create date : 2004-10-22 // Description : DataEncrypt 字符窜加密和解密处理 // Modify date : By: Why: //---------------------------------------------------------------- using System; using System.Text; using System.Security.Cryptography ; using System.IO ;
namespace Encrypt { /// <summary> /// SwEncrypt 字符窜加密和解密。 /// </summary> public class DataEncrypt { private static string KEY_ENCRYPT="c_dc"; /// <summary> /// 解密字符窜 /// </summary> /// <param name="pDecryptStr"></param> /// <returns></returns> public static string DecryptString(string pDecryptStr) {
DESCryptoServiceProvider desc = new DESCryptoServiceProvider(); //产生key PasswordDeriveBytes db = new PasswordDeriveBytes(KEY_ENCRYPT, null); byte[] key = db.GetBytes(8); //存储解密后的数据 MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms,desc.CreateDecryptor(key, key),CryptoStreamMode.Write); //取到加密后的数据的字节流,如果是保存到文件 try{ byte[] databytes = Convert.FromBase64String(pDecryptStr); //解密数据 cs.Write(databytes, 0, databytes.Length); cs.FlushFinalBlock(); byte[] res = ms.ToArray(); //返回解密后的数据,这里返回的数据应该和参数pwd的值相同。 return System.Text.Encoding.UTF8.GetString(res); } catch{ Console.WriteLine("字符窜" + pDecryptStr + "解密不成功。"); return null; } } /// <summary> /// 加密字符窜 /// </summary> /// <param name="pEncryptedStr"></param> /// <returns></returns> public static string EncryptString(string pEncryptedStr) { //des进行加密 DESCryptoServiceProvider desc = new DESCryptoServiceProvider(); //产生key PasswordDeriveBytes db = new PasswordDeriveBytes(KEY_ENCRYPT, null); byte[] key = db.GetBytes(8); //存储加密后的数据 MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms,desc.CreateEncryptor(key, key),CryptoStreamMode.Write); //取到密码的字节流 try{ byte[] data = Encoding.UTF8.GetBytes(pEncryptedStr); //进行加密 cs.Write(data, 0, data.Length); cs.FlushFinalBlock(); //取加密后的数据 byte[] res = ms.ToArray(); return Convert.ToBase64String(res); } catch{ Console.WriteLine("字符窜" + pEncryptedStr + "加密不成功。"); return null; }
} } }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· Windows桌面应用自动更新解决方案SharpUpdater5发布
· 我的家庭实验室服务器集群硬件清单
· C# 13 中的新增功能实操
· Supergateway:MCP服务器的远程调试与集成工具
· Vue3封装支持Base64导出的电子签名组件