温馨提示×

asp.net aes加密数据如何解密

小樊
145
2024-12-04 23:52:18
栏目: 编程语言

在ASP.NET中,使用AES加密和解密数据需要遵循以下步骤:

  1. 引入命名空间:
using System.Security.Cryptography; using System.Text; 
  1. 创建一个加密方法:
public static string Encrypt(string plainText, string key, string iv) { byte[] plainBytes = Encoding.UTF8.GetBytes(plainText); using (Aes aes = Aes.Create()) { aes.Key = Encoding.UTF8.GetBytes(key); aes.IV = Encoding.UTF8.GetBytes(iv); ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV); byte[] encryptedBytes = encryptor.TransformFinalBlock(plainBytes, 0, plainBytes.Length); return Convert.ToBase64String(encryptedBytes); } } 
  1. 创建一个解密方法:
public static string Decrypt(string cipherText, string key, string iv) { byte[] cipherBytes = Convert.FromBase64String(cipherText); using (Aes aes = Aes.Create()) { aes.Key = Encoding.UTF8.GetBytes(key); aes.IV = Encoding.UTF8.GetBytes(iv); ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV); byte[] decryptedBytes = decryptor.TransformFinalBlock(cipherBytes, 0, cipherBytes.Length); return Encoding.UTF8.GetString(decryptedBytes); } } 
  1. 使用加密和解密方法:
string plainText = "Hello, World!"; string key = "your_key_here"; // 请确保密钥长度为16、24或32字节 string iv = "your_iv_here"; // 初始化向量长度必须与AES密钥长度相同 string encryptedText = Encrypt(plainText, key, iv); Console.WriteLine("Encrypted Text: " + encryptedText); string decryptedText = Decrypt(encryptedText, key, iv); Console.WriteLine("Decrypted Text: " + decryptedText); 

请注意,为了确保数据安全,您应该使用安全的密钥和初始化向量。在实际应用中,建议将密钥和初始化向量存储在安全的地方,而不是硬编码在代码中。

0