技术文摘
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应用程序中的敏感数据,提高数据的安全性。
- Jenkins 部署 Spring Boot Docker 镜像的详细步骤
- TypeScript遭弃!知名前端工具重回 JS,社区指责开倒车
- HTML 学习之 CSS 盒子模型初解
- 首次带领后端团队的真实经历
- 现代 CSS 原生嵌套解决方案
- 五分钟弄懂 SSR、CSR、ISR 和 SSG 的区别
- Vue 与 React:必知要点
- Cache2k:超越 Guava Cache 与 Caffeine 的新选项
- OpenTelemetry 入门一篇足矣
- Python PyQt 十分钟快速入门秘籍,轻松上手!
- Springboot 中不依赖第三方插件的敏感信息加密处理方式,你了解吗?
- C#语法糖:闭包底层玩法探析
- 代码审查是否已然过时
- 谈谈后浪推出的在线版 Windows 12
- 工厂方法模式其实并不复杂