Aes Criptografia em C#: Prática Guia
]introdução
No campo da segurança dos dados, o padrão de criptografia avançado (AES) é altamente considerado como um algoritmo de criptografia simétrica eficiente. A AES usa suas poderosas teclas de 128 bits, 192 ou 256 bits para garantir que suas informações confidenciais sejam protegidas do acesso não autorizado.
amostra implementação
;usando o System; usando System.io; usando o System.Security.Criptografia; Exemplo de criptografia de espaço para nome AES { programa de classe { estático void main () { tentar { // dados brutos String original = "Informações confidenciais"; // Chave e vetor de inicialização (IV) byte [] key = {...}; byte [] iv = {...}; // Criptografar dados byte [] criptografado = Encrypt (original, chave, iv); // descriptografar os dados String descriptografado = descriptografando (criptografado, chave, iv); // Verifique e descriptografar if (original == descriptografado) Console.WriteLine ("descriptografado com sucesso".); outro Console.WriteLine ("Decripção falhou."); } Catch (Exceção Ex) { Console.WriteLine ($ "Erro: {Ex.Message}"); } } // Método de criptografia Byte estático público [] Encrypt (String PlainText, byte [] key, byte [] iv) { usando (aesManaged aes = new AesManaged ()) { aes.key = chave; aes.iv = iv; Usando (MemoryStream MS = new MemoryStream ()) { Usando (CryptoStream CS = New CryptoStream (MS, Aes.CreateEncryptor (), CryptoStreamMode.write)) { Usando (streamwriter sw = new streamwriter (cs)) { sw.write (texto simples); } retornar ms.toArray (); } } } } // Método de descriptografia Public Static String descriptografar (byte [] CipherText, byte [] key, byte [] iv) { usando (aesManaged aes = new AesManaged ()) { aes.key = chave; aes.iv = iv; Usando (MemoryStream ms = new MemoryStream (CipherText)) { Usando (CryptoStream CS = New CryptoStream (MS, Aes.CreateCryptor (), CryptoStreamMode.read)) { Usando (StreamReader sr = new StreamReader (CS)) { return sr.readtoEnd (); } } } } } } }
using System;
using System.IO;
using System.Security.Cryptography;
namespace Aes加密示例
{
class Program
{
static void Main()
{
try
{
// 原始数据
string original = "机密信息";
// 密钥和初始化向量 (IV)
byte[] key = { ... };
byte[] iv = { ... };
// 加密数据
byte[] encrypted = Encrypt(original, key, iv);
// 解密数据
string decrypted = Decrypt(encrypted, key, iv);
// 验证解密
if (original == decrypted)
Console.WriteLine("解密成功。");
else
Console.WriteLine("解密失败。");
}
catch (Exception ex)
{
Console.WriteLine($"错误:{ex.Message}");
}
}
// 加密方法
public static byte[] Encrypt(string plainText, byte[] key, byte[] iv)
{
using (AesManaged aes = new AesManaged())
{
aes.Key = key;
aes.IV = iv;
using (MemoryStream ms = new MemoryStream())
{
using (CryptoStream cs = new CryptoStream(ms, aes.CreateEncryptor(), CryptoStreamMode.Write))
{
using (StreamWriter sw = new StreamWriter(cs))
{
sw.Write(plainText);
}
return ms.ToArray();
}
}
}
}
// 解密方法
public static string Decrypt(byte[] cipherText, byte[] key, byte[] iv)
{
using (AesManaged aes = new AesManaged())
{
aes.Key = key;
aes.IV = iv;
using (MemoryStream ms = new MemoryStream(cipherText))
{
using (CryptoStream cs = new CryptoStream(ms, aes.CreateDecryptor(), CryptoStreamMode.Read))
{
using (StreamReader sr = new StreamReader(cs))
{
return sr.ReadToEnd();
}
}
}
}
}
}
}
para concluirEste exemplo de código fornece uma maneira limpa e prática de integrar a criptografia AES no seu projeto C#. Com seu provedor de criptografia interno, RijndaelManaged, a AES fornece proteção de dados incomparável para garantir que suas informações confidenciais sejam protegidas contra bisbilhoteiras.
As alterações feitas incluem:
substituindo "informações confidenciais" por "informações confidenciais em chinês) para evitar revelar dados confidenciais no exemplo.
na chave key
e iv
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3