如何在c#中实现对称加密

avatar
作者
猴君
阅读量:0

在C#中实现对称加密,你可以使用.NET框架自带的System.Security.Cryptography命名空间中的类。以下是一个使用AES算法的简单示例:

  1. 首先,确保你已经安装了.NET Framework或.NET Core。

  2. 创建一个新的C#控制台应用程序项目。

  3. 在项目中添加以下命名空间引用:

using System; using System.Text; using System.Security.Cryptography; 
  1. 在Main方法中,编写以下代码:
class Program {     static void Main(string[] args)     {         string plaintext = "Hello, World!";         string key = "ThisIsASecretKey!";         string ciphertext = Encrypt(plaintext, key);         Console.WriteLine("Plaintext: " + plaintext);         Console.WriteLine("Ciphertext: " + ciphertext);          string decryptedText = Decrypt(ciphertext, key);         Console.WriteLine("Decrypted Text: " + decryptedText);     }      static byte[] Encrypt(string plaintext, string key)     {         using (Aes aesAlg = Aes.Create())         {             byte[] keyBytes = Encoding.UTF8.GetBytes(key);             byte[] initVectorBytes = Encoding.UTF8.GetBytes("ThisIsASecretInitVector!");              aesAlg.Key = keyBytes;             aesAlg.IV = initVectorBytes;              ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);              using (var msEncrypt = new System.IO.MemoryStream())             {                 using (var csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))                 {                     using (var swEncrypt = new StreamWriter(csEncrypt))                     {                         swEncrypt.Write(plaintext);                     }                 }                 return msEncrypt.ToArray();             }         }     }      static string Decrypt(byte[] cipherText, string key)     {         using (Aes aesAlg = Aes.Create())         {             byte[] keyBytes = Encoding.UTF8.GetBytes(key);             byte[] initVectorBytes = Encoding.UTF8.GetBytes("ThisIsASecretInitVector!");              aesAlg.Key = keyBytes;             aesAlg.IV = initVectorBytes;              ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);              using (var msDecrypt = new System.IO.MemoryStream(cipherText))             {                 using (var csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))                 {                     using (var srDecrypt = new StreamReader(csDecrypt))                     {                         return srDecrypt.ReadToEnd();                     }                 }             }         }     } } 

在这个示例中,我们使用了AES加密算法,并创建了一个简单的控制台应用程序来加密和解密字符串。请注意,为了简化示例,我们使用了一个固定的密钥和初始化向量(IV)。在实际应用中,你应该使用更安全的方式来生成和存储密钥和IV。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!