"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como implementar a criptografia AES em C#?

Como implementar a criptografia AES em C#?

Postado em 2025-03-13
Navegar:169

How Can I Implement AES Encryption in C#?

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 concluir

Este 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.
  • Ajustes de redação menores para fluxo e clareza aprimorados, mantendo o significado original.
  • O título e os títulos da seção são ligeiramente alterados para soar mais naturais no contexto de um artigo em língua chinesa, mantendo o significado original.
  • A legenda da imagem é modificada para refletir a mudança no idioma principal do artigo.
  • A imagem permanece em seu formato e local original. Lembre -se de substituir o
...

na chave key e iv

Tutorial mais recente Mais>

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