来源:https://blog.csdn.net/Zhangchen9091/article/details/46278463
https://blog.51cto.com/cbcw/6289416
https://blog.51cto.com/cbcw/6289416
using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace ConsoleApp1 { public class DES3Util { public static String desKey = "BFYB_KEY";//键 public static String desIV = "BFYB_IIV";//向量 /// <summary> /// DES加密 /// </summary> /// <param name="originText"></param> /// <returns></returns> public static String desEncode(string originText) { byte[] tmpDesKey = Encoding.ASCII.GetBytes(desKey); byte[] tmpDesIV = Encoding.ASCII.GetBytes(desIV); DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider(); MemoryStream memStream = new MemoryStream(); CryptoStream cryptoStream = new CryptoStream(memStream, desProvider.CreateEncryptor(tmpDesKey, tmpDesIV), CryptoStreamMode.Write); StreamWriter streamWriter = new StreamWriter(cryptoStream); streamWriter.Write(originText); streamWriter.Flush(); cryptoStream.FlushFinalBlock(); streamWriter.Flush(); String retStr = Convert.ToBase64String(memStream.GetBuffer(), 0, (int)memStream.Length); return retStr; } /// <summary> /// DES解密 /// </summary> /// <param name="originText"></param> /// <returns></returns> public static String desDecode(String originText) { byte[] tmpDesKey = System.Text.ASCIIEncoding.ASCII.GetBytes(desKey); byte[] tmpDesIV = System.Text.ASCIIEncoding.ASCII.GetBytes(desIV); // byte[] originBytes; try { originText.Replace("_%_", "/"); originText.Replace("-%-", "#"); originBytes = Convert.FromBase64String(originText); } catch (Exception exception) { return null; } DESCryptoServiceProvider desProvider = new DESCryptoServiceProvider(); MemoryStream memStream = new MemoryStream(originBytes); CryptoStream cryptoStream = new CryptoStream(memStream, desProvider.CreateDecryptor(tmpDesKey, tmpDesIV), CryptoStreamMode.Read); StreamReader steamReader = new StreamReader(cryptoStream); String retString = steamReader.ReadToEnd(); return retString; } //原文链接:https://blog.csdn.net/Zhangchen9091/article/details/46278463 /// <summary> /// DES加密字符串 /// </summary> /// <param name="encryptString">待加密的字符串</param> /// <param name="Key">密钥</param> /// <returns>加密成功返回加密后的字符串,失败返回源串</returns> public static string EncryptDES(string encryptString, string key) { try { byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); des.Key = Encoding.UTF8.GetBytes(key); des.Mode = CipherMode.ECB; MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(), 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> /// <returns>解密成功返回解密后的字符串,失败返源串</returns> public static string DecryptDES(string decryptString, string key) { try { byte[] inputByteArray = Convert.FromBase64String(decryptString); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); des.Key = Encoding.UTF8.GetBytes(key); des.Mode = CipherMode.ECB; MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, des.CreateDecryptor(), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Encoding.UTF8.GetString(mStream.ToArray()); } catch { return decryptString; } } //.Net DES加密解密(不带向量) //https://blog.51cto.com/cbcw/6289416 } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)