使用C#进行加密和解密通常涉及到.NET框架中的加密类库。下面是一个简单的示例,演示如何使用C#进行AES对称加密和解密:
using System; using System.IO; using System.Security.Cryptography; using System.Text; class Program { static void Main() { string plainText = "Hello, World!"; // 生成随机的密钥和初始化向量 byte[] key = GenerateRandomBytes(32); // 256 bits byte[] iv = GenerateRandomBytes(16); // 128 bits // 加密 byte[] encryptedText = Encrypt(plainText, key, iv); // 解密 string decryptedText = Decrypt(encryptedText, key, iv); // 输出结果 Console.WriteLine($"原始文本: {plainText}"); Console.WriteLine($"加密后: {Convert.ToBase64String(encryptedText)}"); Console.WriteLine($"解密后: {decryptedText}"); } static byte[] GenerateRandomBytes(int length) { using (var rng = new RNGCryptoServiceProvider()) { byte[] bytes = new byte[length]; rng.GetBytes(bytes); return bytes; } } static byte[] Encrypt(string plainText, byte[] key, byte[] iv) { using (Aes aesAlg = Aes.Create()) { aesAlg.Key = key; aesAlg.IV = iv; ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV); using (MemoryStream msEncrypt = new MemoryStream()) { using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) { using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) { swEncrypt.Write(plainText); } } return msEncrypt.ToArray(); } } } static string Decrypt(byte[] cipherText, byte[] key, byte[] iv) { using (Aes aesAlg = Aes.Create()) { aesAlg.Key = key; aesAlg.IV = iv; ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV); using (MemoryStream msDecrypt = new MemoryStream(cipherText)) { using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) { using (StreamReader srDecrypt = new StreamReader(csDecrypt)) { return srDecrypt.ReadToEnd(); } } } } } }
请注意,上述代码使用AES算法进行对称加密。在实际应用中,确保安全性需要更多考虑,例如安全地存储密钥和使用适当的加密模式。
882333精选一肖 澳门网络游戏注册送68 2020澳门六盒宝典
评论列表