Para realizar criptografia e descriptografia usando o algoritmo AES (Advanced Encryption Standard) em C#, você pode usar a classe AesCryptoServiceProvider que faz parte do namespace System.Security.Cryptography. Abaixo, eu fornecerei um exemplo simples de como você pode realizar criptografia e descriptografia usando AES em C#.
Certifique-se de ajustar a chave e o IV de acordo com os requisitos de segurança do seu aplicativo. Essa é uma implementação básica e pode ser necessário ajustá-la para atender aos requisitos específicos do seu projeto.using System; using System.IO; using System.Security.Cryptography; using System.Text; public class AesExample { public static void Main() { string originalText = "Este é um texto de exemplo para criptografia AES."; // Chave e IV devem ter tamanhos compatíveis com o tamanho do bloco do algoritmo escolhido byte[] key = Encoding.UTF8.GetBytes("chave12345678901"); // 16 bytes para AES-128 byte[] iv = Encoding.UTF8.GetBytes("iv12345678901234"); // 16 bytes para AES-128 // Criptografar o texto byte[] encryptedText = EncryptStringToBytes(originalText, key, iv); // Imprimir o texto criptografado Console.WriteLine("Texto Criptografado: " + Convert.ToBase64String(encryptedText)); // Descriptografar o texto string decryptedText = DecryptStringFromBytes(encryptedText, key, iv); // Imprimir o texto descriptografado Console.WriteLine("Texto Descriptografado: " + decryptedText); } static byte[] EncryptStringToBytes(string plainText, byte[] key, byte[] iv) { using (AesCryptoServiceProvider aesAlg = new AesCryptoServiceProvider()) { aesAlg.Key = key; aesAlg.IV = iv; // Criar um objeto que será usado para criptografar os dados. ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV); // Criar o fluxo de memória para armazenar os dados criptografados. using (MemoryStream msEncrypt = new MemoryStream()) { // Criar um fluxo de criptografia para escrever no fluxo de memória. using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) { // Escrever os dados criptografados no fluxo de criptografia. using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) { swEncrypt.Write(plainText); } } return msEncrypt.ToArray(); } } } static string DecryptStringFromBytes(byte[] cipherText, byte[] key, byte[] iv) { using (AesCryptoServiceProvider aesAlg = new AesCryptoServiceProvider()) { aesAlg.Key = key; aesAlg.IV = iv; // Criar um objeto que será usado para descriptografar os dados. ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV); // Criar um fluxo de memória para armazenar os dados descriptografados. using (MemoryStream msDecrypt = new MemoryStream(cipherText)) { // Criar um fluxo de criptografia para ler do fluxo de memória. using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)) { // Criar um leitor para o fluxo de criptografia. using (StreamReader srDecrypt = new StreamReader(csDecrypt)) { // Ler os dados descriptografados do leitor. return srDecrypt.ReadToEnd(); } } } } } }
Comentários
Postar um comentário