Criptografia base64 com C#

Neste artigo você aprende como Criptografar e Descriptografar usando o método base64 e Class Library.

Simplificando o desenvolvimento de APIs PHP com Swagger

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 Windows Forms Application em Visual C# e marque .NET Framework 4.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 Solution Explorer, em seguida clique em Add e por último em New Project.

Em Visual C#, selecione Class Libray, 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 Solution Explorer, 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 Class Libray é exibida na tabela ao centro, marque o CLCripto e clique em OK.

Agora nosso projeto está completamente configurado, nosso pacote principal consegue enxergar nossa Class Libray 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 using CLCripto ou se preferir clique com o botão direito do mouse sobre BaseCripto em seguida Resolve e Using BaseCripto.

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 Class Library 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!!!