技术文摘
ASP.NET数据加密的对称加密算法实现
2025-01-02 03:42:28 小编
ASP.NET数据加密的对称加密算法实现
在当今数字化时代,数据安全至关重要。ASP.NET作为一种强大的Web开发技术,提供了多种数据加密方式,其中对称加密算法是常用的一种。本文将介绍ASP.NET中对称加密算法的实现。
对称加密算法使用相同的密钥进行加密和解密。这种算法的优点是加密和解密速度快,适合处理大量数据。在ASP.NET中,我们可以使用System.Security.Cryptography命名空间中的类来实现对称加密。
我们需要选择一种对称加密算法。常见的对称加密算法有DES、3DES、AES等。AES(Advanced Encryption Standard)是目前最常用的对称加密算法之一,它具有高强度的加密性能和较高的安全性。
下面是一个使用AES算法进行数据加密和解密的示例代码:
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main()
{
string originalText = "这是要加密的文本";
string key = "0123456789abcdef";
byte[] encryptedData = Encrypt(originalText, key);
string decryptedText = Decrypt(encryptedData, key);
Console.WriteLine("原始文本:" + originalText);
Console.WriteLine("加密后的数据:" + Convert.ToBase64String(encryptedData));
Console.WriteLine("解密后的文本:" + decryptedText);
}
static byte[] Encrypt(string plainText, string key)
{
using (Aes aesAlg = Aes.Create())
{
aesAlg.Key = Encoding.UTF8.GetBytes(key);
aesAlg.GenerateIV();
ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
using (System.IO.MemoryStream msEncrypt = new System.IO.MemoryStream())
{
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (System.IO.StreamWriter swEncrypt = new System.IO.StreamWriter(csEncrypt))
{
swEncrypt.Write(plainText);
}
byte[] encrypted = msEncrypt.ToArray();
byte[] combined = new byte[aesAlg.IV.Length + encrypted.Length];
Array.Copy(aesAlg.IV, 0, combined, 0, aesAlg.IV.Length);
Array.Copy(encrypted, 0, combined, aesAlg.IV.Length, encrypted.Length);
return combined;
}
}
}
}
static string Decrypt(byte[] cipherText, string key)
{
using (Aes aesAlg = Aes.Create())
{
aesAlg.Key = Encoding.UTF8.GetBytes(key);
byte[] iv = new byte[aesAlg.IV.Length];
byte[] encrypted = new byte[cipherText.Length - aesAlg.IV.Length];
Array.Copy(cipherText, 0, iv, 0, aesAlg.IV.Length);
Array.Copy(cipherText, aesAlg.IV.Length, encrypted, 0, encrypted.Length);
aesAlg.IV = iv;
ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);
using (System.IO.MemoryStream msDecrypt = new System.IO.MemoryStream(encrypted))
{
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
{
using (System.IO.StreamReader srDecrypt = new System.IO.StreamReader(csDecrypt))
{
return srDecrypt.ReadToEnd();
}
}
}
}
}
}
在上述代码中,我们首先定义了要加密的文本和密钥。然后使用Encrypt方法对文本进行加密,再使用Decrypt方法对加密后的数据进行解密。
通过实现对称加密算法,我们可以有效地保护ASP.NET应用程序中的敏感数据,提高数据的安全性。
- 用Deno制作首个项目
- Web开发里的棘手概念
- Meme 代币本周激增:上涨情况全览
- JavaScript 实现 Go 风格的错误处理
- 阅读本文前,别用 Prisma ORM!
- CSS新@position-try特性带来的便利性
- 探索 Nodejs 框架新时代:Express v5 全面介绍
- JsTraceToIX 让 React、Vue 和 Nodejs 调试更轻松 无需用 consolelog 搅乱代码库
- React基础~渲染性能/useCallback
- 轻松掌握 JavaScript 中的事件循环
- 查看我的项目
- 关键反应概念
- 破解编码面试之快慢指针技术部分
- 分享我的首个开源项目:Swaggy-Swagger
- 深入了解 JSX:全方位解析