Criptografar e descriptografar uma string em C#
-
Criptografar uma string com a classe
AesManaged
emC#
-
Descriptografar uma string com a classe
AesManaged
emC#
Este tutorial discutirá métodos para criptografar e descriptografar uma string em C#.
Criptografar uma string com a classe AesManaged
em C#
Criptografia é o processo de conversão de dados em texto cifrado para que qualquer pessoa não autorizada não possa acessar os dados. Neste tutorial, usaremos o algoritmo Advanced Encryption Standard
(AES) para criptografar e descriptografar uma string em C#. A classe AesManaged
fornece métodos para criptografar e descriptografar nossa string usando o algoritmo AES. A função CreateEncryptor()
pode criptografar dados usando uma chave. Temos que passar nossas chaves de string para a função CreateEncryptor()
. O exemplo de código a seguir nos mostra como criptografar uma string de acordo com o algoritmo AES com a função CreateEncryptor()
em C#.
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace encrypt_decrypt_string {
class Program {
static string Encrypt() {
try {
string textToEncrypt = "WaterWorld";
string ToReturn = "";
string publickey = "12345678";
string secretkey = "87654321";
byte[] secretkeyByte = {};
secretkeyByte = System.Text.Encoding.UTF8.GetBytes(secretkey);
byte[] publickeybyte = {};
publickeybyte = System.Text.Encoding.UTF8.GetBytes(publickey);
MemoryStream ms = null;
CryptoStream cs = null;
byte[] inputbyteArray = System.Text.Encoding.UTF8.GetBytes(textToEncrypt);
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) {
ms = new MemoryStream();
cs = new CryptoStream(ms, des.CreateEncryptor(publickeybyte, secretkeyByte),
CryptoStreamMode.Write);
cs.Write(inputbyteArray, 0, inputbyteArray.Length);
cs.FlushFinalBlock();
ToReturn = Convert.ToBase64String(ms.ToArray());
}
return ToReturn;
} catch (Exception ex) {
throw new Exception(ex.Message, ex.InnerException);
}
}
static void Main(string[] args) {
string encrypted = Encrypt();
Console.WriteLine(encrypted);
}
}
}
Resultado:
6 + PXxVWlBqcUnIdqsMyUHA ==
No código acima, criptografamos a string WaterWorld
com publickey
e secretkey
como chaves e retornamos 6+PXxVWlBqcUnIdqsMyUHA==
como uma string criptografada. Ambas as chaves devem ter pelo menos 8 caracteres.
Descriptografar uma string com a classe AesManaged
em C#
A descriptografia é o processo de conversão do texto cifrado de volta aos dados originais para que indivíduos autorizados possam acessar os dados. A CreateDecryptor()
função pode descriptografar dados usando uma chave. Temos que passar nossas chaves de string para a função CreateEncryptor()
. As chaves devem ser iguais às usadas na função CreateDecryptor()
. O exemplo de código a seguir nos mostra como criptografar uma string de acordo com o algoritmo AES com a função CreateDecryptor()
em C#.
using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace encrypt_decrypt_string {
class Program {
static string Decrypt() {
try {
string textToDecrypt = "6+PXxVWlBqcUnIdqsMyUHA==";
string ToReturn = "";
string publickey = "12345678";
string secretkey = "87654321";
byte[] privatekeyByte = {};
privatekeyByte = System.Text.Encoding.UTF8.GetBytes(secretkey);
byte[] publickeybyte = {};
publickeybyte = System.Text.Encoding.UTF8.GetBytes(publickey);
MemoryStream ms = null;
CryptoStream cs = null;
byte[] inputbyteArray = new byte[textToDecrypt.Replace(" ", "+").Length];
inputbyteArray = Convert.FromBase64String(textToDecrypt.Replace(" ", "+"));
using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) {
ms = new MemoryStream();
cs = new CryptoStream(ms, des.CreateDecryptor(publickeybyte, privatekeyByte),
CryptoStreamMode.Write);
cs.Write(inputbyteArray, 0, inputbyteArray.Length);
cs.FlushFinalBlock();
Encoding encoding = Encoding.UTF8;
ToReturn = encoding.GetString(ms.ToArray());
}
return ToReturn;
} catch (Exception ae) {
throw new Exception(ae.Message, ae.InnerException);
}
}
static void Main(string[] args) {
string decrypted = Decrypt();
Console.WriteLine(decrypted);
}
}
}
Resultado:
WaterWorld
No código acima, convertemos a string criptografada 6+PXxVWlBqcUnIdqsMyUHA==
do exemplo anterior de volta à sua forma original WaterWorld
com publickey
e secretkey
como chaves. As chaves precisam ser iguais às usadas no exemplo anterior para que esse método funcione.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn