C# DES 加解密
Posted nanfei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# DES 加解密相关的知识,希望对你有一定的参考价值。
using System; using System.Text; using System.Security.Cryptography; using System.Diagnostics; using System.IO; using System.Reflection; using System.Windows.Forms; namespace FirstEliteCSFileEncoder class Program /// <summary> /// DESEncrypt加密解密算法。 /// </summary> public class DESEncoder public DESEncoder(string key) this.Key = key; /// <summary> /// 对称加密解密的密钥 /// </summary> public string Key get; private set; /// <summary> /// DES加密 /// </summary> /// <param name="encryptString"></param> /// <returns></returns> public string EncryptString(string encryptString) byte[] keyBytes = Encoding.UTF8.GetBytes(this.Key.Substring(0, 8)); byte[] keyIV = keyBytes; byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString); DESCryptoServiceProvider provider = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, provider.CreateEncryptor(keyBytes, keyIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Convert.ToBase64String(mStream.ToArray()); /// <summary> /// DES解密 /// </summary> /// <param name="decryptString"></param> /// <returns></returns> public string DecryptString(string decryptString) byte[] keyBytes = Encoding.UTF8.GetBytes(this.Key.Substring(0, 8)); byte[] keyIV = keyBytes; byte[] inputByteArray = Convert.FromBase64String(decryptString); DESCryptoServiceProvider provider = new DESCryptoServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream = new CryptoStream(mStream, provider.CreateDecryptor(keyBytes, keyIV), CryptoStreamMode.Write); cStream.Write(inputByteArray, 0, inputByteArray.Length); cStream.FlushFinalBlock(); return Encoding.UTF8.GetString(mStream.ToArray()); public bool EncryptFile(string filepath) try var bytes = File.ReadAllBytes(filepath); File.WriteAllBytes(filepath, Encoding.UTF8.GetBytes(this.EncryptString(Convert.ToBase64String(bytes)))); return true; catch (Exception ex) Debug.Print(ex.ToString()); return false; public bool DecryptFile(string filepath) try var bytes = File.ReadAllBytes(filepath); File.WriteAllBytes(filepath, Convert.FromBase64String(this.DecryptString(Encoding.UTF8.GetString(bytes)))); return true; catch (Exception ex) Debug.Print(ex.ToString()); return false; public static bool LoadAssembly(string filepath) try var encoder = new DESEncoder("$u&CIbzz"); var bytes = File.ReadAllBytes(filepath); var assembly = Assembly.Load(Convert.FromBase64String(encoder.DecryptString(Encoding.UTF8.GetString(bytes)))); MessageBox.Show(assembly.FullName); return true; catch (Exception ex) Debug.Print(ex.ToString()); return false; static void Main(string[] args) LoadAssembly(@""); var encoder = new DESEncoder("$u&CIbzz"); encoder.EncryptFile(@"C:\Users\knife\Desktop\翻译.txt"); encoder.DecryptFile(@"C:\Users\knife\Desktop\翻译.txt"); Console.WriteLine("over"); Console.ReadLine();
以上是关于C# DES 加解密的主要内容,如果未能解决你的问题,请参考以下文章