Prévia do material em texto
O que é Criptografia: Criptografia é um mecanismo de segurança e privacidade que torna determinada comunicação (textos, imagens, vídeos e etc) ininteligível para quem não tem acesso aos códigos de “tradução” da mensagem. Nas comunicações digitais, a criptografia auxilia na proteção de todos os conteúdos transmitidos entre duas ou mais fontes, evitando a intercepção por parte de cibercriminosos, Hackers, espiões, por exemplo. Saiba mais sobre o significado de Hacker Atualmente, a maioria dos sites na internet utilizam comunicações criptografadas, principalmente em locais onde dados bancários, password se arquivos pessoais estejam armazenados. Além de prevenir que pessoas não-autorizadas tenham acesso aos dados e informações trocadas na rede online, a criptografia também impede que backups sejam acessados por usuários indevidos. Descubra mais sobre o significado de Etimologicamente, o termo “criptografia” se originou a partir do grego, formado pela união dos elementos kruptós, que significa “secreto” ou “oculto”, e graphía, que quer dizer “escrita”. Assim, o significa literal de criptografia é “escrita secreta”. No cotidiano, sistemas de criptografia são utilizadas pelos usuários de aplicativos e softwares de troca de mensagens instantâneas, como o Whatsapp, por exemplo. Linguagem Binária(0 ou 1) = 2 caracteres Codificação ASCII=Conjunto de caracteres de 7 bits Sendo assim, 2 ^ 7 = 128 carac. Exemplo: Nós aprendemos Criptografia na escola e nem sabemos, um exemplo disso é essa imagem. Bem, já vimos a Criptografia e como podemos usar… Mas como por no Código. Vou deixar um exemplo, você pode copiar e trocar o que queira. // Inicio public string Criptografar(string senha) { //Variável do tipo Byte que armazená a senha convertida para uma cadeia Binária. Byte[] senhaBinaria = ASCIIEncoding.ASCII.GetBytes(senha); /* Variável do tipo string recebe o conteúdo do variável senhaBinaria convertido * para a sua representação em caracteres (todas64string).*/ string senhaCripto = Convert.ToBase64String(senhaBinaria); return senhaCripto; } //Fim /*Criado a classe, agora você deve por no formulário de armazenamento de login e senha no * banco de dados, exemplo. */ NovoUsuario = new AcessoDados.UsuarioAcessoDados(); DataTable dadosTabela = new DataTable(); dadosTabela = novoUsuario.RetornarLogin(login); criptografar = new Criptografia(); string senhaCripto = criptografar.criptografar(senha); // Criptografa a senha para o armazenar no Banco } Você pode usar o PasswordChar. Para fazer isso você deve selecionar as TextBox que podem conter senhas, após isso, vá ate Properties, procure a opção PasswordChar, apague seu conteúdo e coloque de preferencia um (*). Agora, para descriptografar no Formulário de Login… Você deve informar o banco que a agora você está usando uma nova senha, e será a senha criptografada. Mas, vamos criar uma classe para descriptografar a senha. Public string Descriptografar(string senhaCripto) { byte[] senhaBinaria = Convert.FromBase64String(senhaCripto); string senhaDecripto = ASCIIEncoding.ASCII.GetString(senha binaria); return senhaDecripto; } Para que possamos utilizar o método que percebe à classe Criptografia aqui, precisamos instanciar- la. // Dica do Dia: Sempre crie uma camada para para cada coisa. Como o Projeto Principal, Regras (Criptografia entra aqui) e Acesso ao Banco de dados. $camada.Criptografia criptografar; //$camada é a camada de Regras que você irá criar, então troque mais tarde Já na camada do AcessoBanco. Será necessário criar um objeto if (dtgusarios.Columns[e.ColumnIndex].Name == “btnEditar”) { criptografar = new Regra.Criptografia(); // Em baixo, mais o banco de dados } try { if (dtgUsuarios.Columns[e.ColumnIndex].Name == “btnEditar”){ criptografar = new Regra.Criptografia(); criptografar.Descriptografar(dtgUsuarios.Rows[e.RowIndex].Cells[“SENHA”].Value.ToString; } Agora… No Acesso ao banco de dados, dos .Text, para informar os dados e etc, você deve trocar a informação que está no banco de dados por aquela que você definiu agora a pouco (senhaDecripto), mas a senha que é armazenada continua sendo criptografada, agora é para o Login. Se não, imagina a senha de abc123 ser mais de 128 caracteres. // Parte de armazenamento de dados de formulários no BD. TxtCodigo.Text = //RESTO txtNome.Text = //RESTO txtLogin.Text = //RESTO txtSenha.Text = senhaDecripto; //Continua com o resto do Código. Bem… Vamos pensar que Binário não é tão seguro como pensamos… Então existe o hash, uma forma de criptografar os dados que até o Banco não sabe a senha correta (GRAÇAS AO PROGRAMADOR QUE EXISTE ISSO), sem isso, imagine que qualquer informação criptografada na Internet, pode ser Descriptografada facilmente, um problema. Public string Criptografar(string senha) { MD5 hashMd5 = MD5.Create(); byte[] valorCriptografado = hashMd5.ComputeHash(Encondig.Default.GetBytes(senha)); StringBuilder strBuilder = new StringBuilder(); for (int i = 0; i < valorCriptogradofado.Lenght; i++) { strBuilder.Append(valorCriptografado[i].ToString(“x2”)); } } Bem, era isso apenas. Obrigado por lerem, essa foi a minha primeira contribuição com conteúdo no Grupo Visual C# Brasil… Autor: Carlos ‘Sourft’ Rocha Referencias: Wikipédia O que é Criptografia: