Por diversos motivos necessitamos que algumas informações sejam mascaradas e desmascaradas apenas quando requisitada, ou seja, enquanto uma informação estiver no banco de dados por exemplo, as informações estejam mascaradas e quando for impresso ao usuário retorna seu resultado inicial desmascarado.
Em todas as linguagens de programação podemos aplicar mecanismos de criptografia, como o Base 64 por exemplo. Neste artigo vamos criar um simples projeto que tem por objetivo criptografar e descriptografar informações usando método Base 64.
Vamos ver ainda na pratica como criar um Class Library, que tem por objetivo gerar uma DLL do nosso projeto, onde a mesma pode ser reaproveitada em qualquer projeto que necessitarmos.
Crie um novo projeto e atribuía o nome de ExemploCriptografia, para isto vá em File (arquivo), New (novo) e por último Project (projeto).
Escolha WindowsFormsApplication em Visual C# e marque .NETFramework4.0, por último clique em OK.
Após o formulário carregado, insira os seguintes componentes: 2 TextBox, 2 Label e 2 Button. Altere as propriedades dos componentes conforme mostrado na tabela abaixo.
Componente | Propriedade | Valor |
TextBox | Name | txtEncode |
TextBox | Name | txtDecode |
Label | Text | Encode |
Label | Text | Decode |
Button | Name | btnEncode |
Button | Text | Encode |
Button | Name | btnDecode |
Button | Text | Decode |
Ajuste o formulário como mostra a imagem abaixo.
Com o nosso formulário principal configurado, agora necessitamos criar a Class Libray que irá armazenar os métodos de Encode e Decode.
Clique com o botão direito do mouse sobre nossa solução na aba SolutionExplorer, em seguida clique em Add e por último em NewProject.
Em VisualC#, selecione ClassLibray, atribua o nome CLCripto e clique em OK.
Note que no Solution Explorer apareceu um novo pacote, nele contém apenas um arquivo chamado Class1.cs, apague este arquivo, pois vamos criar um novo.
Clique com o botão direito do mouse em cima do pacote CLCripto, clique em Add e por último em Class. Quando a janela de nova class for carregada atribuía o nome de BaseCripto.cs e clique em OK.
Agora já temos dois pacotes em nosso projeto, porém nosso pacote não consegue visualizar as classes contida na CLCripto, para isto é necessário adicionar uma referência no pacote ExemploCripografia.
Clique com o botão direito do mouse em References no SolutionExplorer, em especifico no pacote ExemploCripografia, Clique em Add Reference...
Na janela para adicionar uma nova referência clique em Solution e Projects, note que nossa ClassLibray é exibida na tabela ao centro, marque o CLCripto e clique em OK.
Agora nosso projeto está completamente configurado, nosso pacote principal consegue enxergar nossa ClassLibray e já podemos implementar nossa classe e métodos.
Volte ao arquivo BaseCripto.cs que criamos no pacote, de um duplo clique nele para abrir. Adicione a palavra public antes de class, desta forma vamos deixar nossa classe publica, sendo assim em qualquer parte do nosso projeto podemos acessa-la.
Adicione os dois métodos mostrados abaixo, note que eles também estão com a visibilidade public e dentro de nossa classe.
Código 01:
public class BaseCripto
{
//Method using to Encode, you can use internal, public, private...
public string Base64Encode(string plainText)
{
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText);
return System.Convert.ToBase64String(plainTextBytes);
}
//Method using to Decode, you can use internal, public, private...
public string Base64Decode(string base64EncodedData)
{
var base64EncodedBytes = System.Convert.FromBase64String(base64EncodedData);
return System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
}
}
Agora para fecharmos nosso projeto vamos implementar nossos dois métodos de criptografia em nosso formulário.
De um duplo clique nos dois botões do formulário apenas para implementar os métodos de clique.
Agora podemos fazer de duas formas, a cada vez que o botão for clicado instanciamos o objeto BaseCripto ou criamos uma variável global que é instanciada quando o formulário for carregado.
Note que o BaseCripto está grifado de vermelho, isto indica que o namespace não foi localizado, mas como já adicionamos a referência a nossa class libray ao projeto e criamos a classe BasCripto como publica, o que falta é apenas adicionar o namespace a nossa classe do formulário. Para isto clique em cima do nome BaseCripto e pressione CTRL + . (ponto), clique em usingCLCripto ou se preferir clique com o botão direito do mouse sobre BaseCripto em seguida Resolve e UsingBaseCripto.
Agora só nos resta implementar os métodos dentro do método clique de cada botão, para isto configure como mostrado no código abaixo. Note que em cada método chamados apenas a referência do objeto, chamado de b.
Código 02:
using CLCripto;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ExemploCriptografia
{
public partial class frmCriptografia : Form
{
private BaseCripto b;
public frmCriptografia()
{
InitializeComponent();
b = new BaseCripto();
}
private void btnEncode_Click(object sender, EventArgs e)
{
txtEncode.Text = b.Base64Encode(txtEncode.Text);
}
private void btnDecode_Click(object sender, EventArgs e)
{
txtDecode.Text = b.Base64Decode(txtDecode.Text);
}
}
}
Se você fez todo o processo como mostrado acima, basta clicar no botão Start para compilar e executar nosso projeto.
Teste os valores, intercalando os campos, ou seja, criptografe em um e descriptografe em outro.
Podemos testar os valores para ver se realmente está funcionando de forma correta através do site https://www.base64decode.org, gere uma chave através de sua aplicação e descriptografe no site.
Basicamente é isto, não há complicações nem mesmo é um monstro de sete cabeças. Agora você está apto a criar ClassLibrary a seus novos projetos e também criptografar suas informações. Em qualquer projeto novo, você pode pegar na pasta do seu projeto a DLL que foi gerada e importar em References ao seu novo projeto.
Espero que tenham gostado, até a próxima e deixem seus comentários a respeito do artigo, isto ajuda muito a elaboração de novos conteúdos.
Fui!!!