在ASP.NET中,可以使用AES加密算法来进行表单身份验证。常用的AES模式有CBC(Cipher Block Chaining)和ECB(Electronic Codebook)。
以下是使用CBC模式进行表单身份验证的代码示例:
using System;
using System.Security.Cryptography;
using System.Text;
public class AESHelper
{
private static byte[] key = Encoding.UTF8.GetBytes("YourSecretKey123"); // 16字节长的密钥
private static byte[] iv = Encoding.UTF8.GetBytes("YourInitializationVector"); // 16字节长的初始化向量
public static string Encrypt(string plainText)
{
using (Aes aes = Aes.Create())
{
aes.Key = key;
aes.IV = iv;
aes.Mode = CipherMode.CBC;
ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
byte[] encryptedBytes = null;
using (var ms = new System.IO.MemoryStream())
{
using (var cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
{
using (var sw = new System.IO.StreamWriter(cs))
{
sw.Write(plainText);
}
encryptedBytes = ms.ToArray();
}
}
string encryptedText = Convert.ToBase64String(encryptedBytes);
return encryptedText;
}
}
public static string Decrypt(string encryptedText)
{
byte[] encryptedBytes = Convert.FromBase64String(encryptedText);
using (Aes aes = Aes.Create())
{
aes.Key = key;
aes.IV = iv;
aes.Mode = CipherMode.CBC;
ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
string decryptedText = null;
using (var ms = new System.IO.MemoryStream(encryptedBytes))
{
using (var cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
{
using (var sr = new System.IO.StreamReader(cs))
{
decryptedText = sr.ReadToEnd();
}
}
}
return decryptedText;
}
}
}
你可以使用AESHelper.Encrypt()
方法来加密表单中的敏感信息,然后使用AESHelper.Decrypt()
方法来解密该信息。在调用这些方法之前,你需要将密钥和初始化向量替换为你自己的值。