Segue exemplo de como encriptar e descriptar um texto utilizando TripleDES no C#.
using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;
class TripleDESSample
{
static void Main()
{
try
{
//Cria um novo objeto TripleDES para gerar a chave e o vetor de inicialização.
TripleDES TripleDESalg = TripleDES.Create();
//cria o texto para encriptar
string sData = "Dados para encriptar.";
string FileName = "fileEncript.txt";
// Encripta o texto e grava em um arquivo.
EncryptTextToFile(sData, FileName, TripleDESalg.Key, TripleDESalg.IV);
// Decripta o texto do arquivo.
string Final = DecryptTextFromFile(FileName, TripleDESalg.Key, TripleDESalg.IV);
// exibe a string decriptada na janela console.
Console.WriteLine(Final);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
public static void EncryptTextToFile(String Data, String FileName, byte[] Key, byte[] IV)
{
try
{
// cria ou abre o arquivo.
FileStream fStream = File.Open(FileName,FileMode.OpenOrCreate);
// cria o objeto TripleDES.
TripleDES tripleDESalg = TripleDES.Create();
// Cria o CryptoStream usando o FileStream
// e passa a key e o IV.
CryptoStream cStream = new CryptoStream(fStream,
tripleDESalg.CreateEncryptor(Key,IV),
CryptoStreamMode.Write);
// Cria um StreamWriter usando o CryptoStream.
StreamWriter sWriter = new StreamWriter(cStream);
// Escreve os dados encriptado no arquivo.
sWriter.WriteLine(Data);
// Fecha os streams.
sWriter.Close();
cStream.Close();
//Fecha o arquivo.
fStream.Close();
}
catch(CryptographicException e)
{
Console.WriteLine("Erro na Criptografia: {0}", e.Message);
}
catch(UnauthorizedAccessException e)
{
Console.WriteLine("Erro no acesso ao arquivo: {0}", e.Message);
}
}
public static string DecryptTextFromFile(String FileName, byte[] Key, byte[] IV)
{
try
{
// cria ou abre o arquivo encriptado.
FileStream fStream = File.Open(FileName, FileMode.OpenOrCreate);
// Cria o objeto TripleDES.
TripleDES tripleDESalg = TripleDES.Create();
CryptoStream cStream = new CryptoStream(fStream,
tripleDESalg.CreateDecryptor(Key,IV),
CryptoStreamMode.Read);
// Cria o StreamReader usando o CryptoStream.
StreamReader sReader = new StreamReader(cStream);
// Ler os dados do stream decryptado.
string val = sReader.ReadLine();
// fecha os streams
sReader.Close();
cStream.Close();
//fecha o arquivo
fStream.Close();
// retorna o texto.
return val;
}
catch(CryptographicException e)
{
Console.WriteLine("Erro na Criptografia: {0}", e.Message);
return null;
}
catch(UnauthorizedAccessException e)
{
Console.WriteLine("Erro no acesso ao arquivo: {0}", e.Message);
return null;
}
}
}
Comentários