PHP

Em por

No artigo de hoje vamos aprender a utilizar métodos de codificação/criptografia (hash) de dados, utilizando md5, sha1 e base64 com PHP.

criptografia com php

Dois destes métodos são hashes de “Mão única” ou “Unidirecional”, ou seja, one-way, que nada mais é que, você poder apenas codifica-lo, não podendo mais transformar a string codificada na original. Já o método de base64 é de mão dupla, ou seja, ele pode ser codificado e decodificado, restaurando a string original.

MD5

Primeiramente irei falar sobre md5 (Message-Digest algorithm 5), e é sem dúvida a mais comum dentre os desenvolvedores. Md5 é um algoritmo de um hash de 128 bits, um protocolo muito utilizado para integridade de arquivos e LOGINS.

O md5 gera uma string alfa-numérica de 32 caracteres, não importa se você tá gerando o md5 de duas letras ou de uma string de 100 caracteres, o md5 gerado sempre vai ter 32 caracteres.

Você pode utilizar o md5 na hora de salvar um dado sigiloso (senhas). Com isso, ninguém terá acesso à senha original do cliente, por exemplo, pois não existe função pronta no php que realize a descriptografia.

Depois de gerado é só comparar o md5 do que foi digitado no campo senha (na hora do login) com o que está armazenado no banco, se estiverem iguais, está tudo certo, ou seja, a comparação é feita de duas strings de 32 caracteres, sempre.

Obs: Infelizmente o md5 tem um “problema”, com muita dificuldade (preste atenção, muita dificuldade), pode gerar dois md5 iguais. Duas strings diferentes que acabem como um mesmo md5. Isso é raríssimo, mas pode acontecer.

Para usar o md5 no PHP é só usar da seguinte forma:

 $string = 'Testando o md5'; $codificada = md5($string); echo $codificada; //resultado da codificação: 39e5829d6f89a98eab66478c1db61d10

SHA1

A outra hash de mão única é o sha1 (Secure Hash Algorithm) ela é usada numa grande variedade de aplicações e protocolos de segurança, incluindo TLS, SSL, PGP, SSH, S/MIME e IPSec.

SHA-1 foi considerado o sucessor do MD5 e ambos têm vulnerabilidades comprovadas. Ele é praticamente idêntico ao md5, porém ele possui 160 bits, o que acaba criando uma string de resultado maior, com 40 caracteres alfanuméricos.

Outro ponto do sha1 é que, por serem 160 bits e gerar uma cadeia de caracteres maior, uma colisão (encontrar duas strings que, codificadas sejam iguais) é bem mais rara que numa chave de 128bits.

Usar o sha1 no PHP é exatamente a mesma coisa que o md5, só que mudando o nome da função:

 $string = 'Testando o sha1; $codificada = sha1($string); echo $codificada; //resultado da codificação: d16693d2a3fa8df40139c23b06d029d9744da4fa

BASE64

É um método para codificação dos dados para transferência na Internet (codificação MIME para transferência de conteúdo). É utilizado frequentemente para transmitir dados binários por meios de transmissão que lidam apenas com texto, como por exemplo, para enviar arquivos anexos por e-mail.

É constituído por 64 caracteres ([A-Za-z0-9], “/” e “+”) que deram origem ao seu nome. O carácter “=” é utilizado como um sufixo especial e a especificação original (RFC 989) definiu que o símbolo “*” pode ser utilizado para delimitar dados convertidos, mas não criptografados, dentro de um stream.

Ela é uma codificação de mão dupla, e usando uma segunda função você pode descobrir a string original de uma string codificada.

Para usá-la no PHP você têm as duas formas como segue:

 $string = ‘Testando o base64’; $codificada = base64_encode($string); echo $codificada; //resultado da codificação: VGVzdGFuZG8gbyBiYXNlNjQ= //agora vamos decodificar a string codificada $original = base64_decode($codificada); echo $original; //resultado decodificado: ‘Testando o base64’ // Note que a variável $original vai ser idêntica a $string do começo

Com esses recursos é possível deixar sua aplicação bem mais organizada e segura, “protegendo” contra possíveis ataques de hackers, ou melhor, “dificultando” bem o trabalho deles. Afinal não existe ainda nada impenetrável na internet!

No próximo post explicarei como criar conexões com Banco de Dados criptografados, para assegurar uma preservação ainda maior de seus dados sigilosos.

Dúvidas, críticas ou sugestões comentem abaixo e bons estudos laugh

Veja Também:

Artigos Relacionados a categoria: PHP

Olá, deixe seu comentário para Criptografia com PHP

Enviando Comentário Fechar :/

...AINDA NÃO VIU NOSSO PORTFÓLIO?

Se ainda não viu nosso Portfólio e quer conhecer um pouco mais... aproveite e veja agora mesmo e tenha um site de qualidade para o seu negócio!

[contato]
Ver o Portfólio Agora