Cifrando e Decifrando dados com o Enterprise Library

No post anterior apresentei O que é Enterprise Library.

Neste post irei mostrar como é facil criptografar e descriptografar dados utilizando o Enterprise Library.

Para o exemplo utilizei o Enterprise Library 4.1-October 2008. Que tem como pré requisitos, Framework.NET 3.5 e Visual Studio 2008. Para uma configuração inferior, utilize outras versões do Enterprise Library.

Devido a flexibilidade do Enterprise Library, as configurações são mantidas em uma arquivo XML (app.config, web.config ou um arquivo .xml a parte) na aplicação.
Ao instalar o Enterprise Library duas ferramentas de configuração são instaladas: uma embutida no Visual Studio (Configuration Editor), e uma aplicação externa (Enterprise Library Configuration Console). As alterações feitas no arquivo de configuração não obrigam a recompilação da aplicação, tornando assim fácil a reconfiguração da aplicação.

Configurando uma aplicação com Criptography Application Block

Para o exemplo, crie um projeto do tipo Console Application, de nome EntLibCriptography (pode ser qualquer nome).
Adicione as refenrencias para os assembly do bloco de aplicação Cryptography Application Block. Para isso, no Visual Studio clique com o botão direito sobre o no de projeto da Solution Explorer, e clique em Add References.
Clique em Browser e localize as dlls:

  • Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.dll
  • Microsoft.Practices.EnterpriseLibrary.Common.dll
  • Microsoft.Practices.ObjectBuilder2.dll

Agora adicione ao projeto um arquivo Application Configuration File (App.config).
Clique com o botão direito sobre o arquivo App.config, e clique em Edit Enterprise Library Configuration.

O próximo passo é configurar o Cryptography Application Block no arquivo de configuração.
Para isso, clique com o botão direito sobre o App.config (no Enterprise Library Configuration e não no Solution Explorer), selecione New e clique em Cryptography Application Block.

Observação: A ferramenta de configuração adiciona o nó Cryptography Application Block e os sub-nó Hash Providers e Symmetric Providers, com uma configuração padrão.

Configurando Symmetric Algorithm Provider

Clique em Symmetric Providers, selecione New, e clique em Symmetric Algorithm Provider.

Configuração do Symmetric Algorithm Provider

No Type Selector, selecione o tipo de symmetric algorithm provider, neste exemplo utilizaremos o RijndaelMananged, que é o tipo padrão.

Agora vamos gerar a chave de criptografia (o Cryptographic Key Wizard permite gerar ou importar uma chave existente).
O Cryptographic Key Wizard, apresentará as seguintes opções:

  • Create a new key
  • Use an existing DPAPI-protected key file
  • Import a password-protected key file

Escolha “create a new key” e clique em Next.
No próximo passo, informamos nossa chave CHAVETESTE e clicamos em Generate para converter o texto em uma chave hexadecimal (pode ser informado uma chave hexadecimal diretamente).
Depois clique em Next.
Escolha um local para salvar o arquivo de chave, e clique em Next.
O próximo passo será configura o modo de acesso a chave, escolha Machine mode e clique em Finish.

Código de criptografia e decriptografia

Abaixo o código de ciframento e deciframento utilizando utilizando o tipo de criptografia Rijndael.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Security.Cryptography;
 
namespace EntLibCriptography
{
    public class Program
    {
        public static void Main(string[] args)
        {
            // Cifra mensagem
            string mensageEncrypted = Cryptographer.EncryptSymmetric("RijndaelManaged", "senha");
            Console.WriteLine("mensagem cifrada: {0}", mensageEncrypted);
 
            // Decifra mensagem
            string mensageDecrypted = Cryptographer.DecryptSymmetric("RijndaelManaged", mensageEncrypted);
            Console.WriteLine("mensagen decifrada: {0}", mensageDecrypted);
        }
    }
}

Resultado:

Resultado da criptografia e decriptografia

Enjoy ;-)

Deixe um comentario


OBS - Você pode usar estes atributos HTML e tags para formatar seus comentário:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">