quarta-feira, 14 de março de 2012

Criptografia no PHP



Existem dois tipos de criptografias: 

  • criptografias de “mão unica” ou one-way: com esse tipo de criptografia pode-se apenas codificar o texto.. Não tem como, baseado no texto já codificado, descobrir o texto original. 

  • Criptografia de "mão dupla", o que possibilita a criação de duas funções: uma para codificar e outra para decodificar o texto.

MD5

MD5 é a mais comum, é um algoritmo de hash de 128 bits.
O md5 gera uma string alfa-numérica de 32 caracteres, não importa se você está gerando o md5 de duas letras ou de um texto de 20 parágrafos… O md5 gerado sempre vai ter 32 caracteres.
Você pode usar o md5 na hora de salvar um dado sigiloso (senhas) no banco de dados. Por ser um criptografia de mão única, ninguém tem acesso à senha original.
Pra usar o md5 no PHP é só usar da seguinte forma:
$string = 'O rato reu a ropa do rei de Roma';
$codificada = md5($string);
echo "Resultado da codificação usando md5: " . $codificada;
// 54cf74d1acdb4037ab956c269b63c8ac

SHA1

A outra criptografia de mão única é o sha1. Ela é praticamente identica ao md5, só que tem 160 bits, o que acaba criando uma string de resultado maior: 40 caracteres alfa-numéricos. Outro ponto do sha1 é que, por ser 160 bits e gerar uma cadeia de caracteres maior, uma colisão (encontrar duas strings que, criptografadas, sejam a mesma coisa) é 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 = 'O rato reu a ropa do rei de Roma';
$codificada = sha1($string);
echo "Resultado da codificação usando sha1: " . $codificada;
// b186b709f7cf5a1d98d413379a66e511df8d59a4

BASE64

A criptografia  base64 é um método para codificação dos dados para transferência na Internet. 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 usar ela no PHP você tem as duas formas:
$string = 'O rato reu a ropa do rei de Roma';
$codificada = base64_encode($string);
echo "Resultado da codificação usando base64: " . $codificada;
// TyByYXRvIHJldSBhIHJvcGEgZG8gcmVpIGRlIFJvbWE=
echo "<br /><br />";
$original = base64_decode($codificada);
echo "Resultado da decodificação usando base64: " . $original;
// O rato reu a ropa do rei de Roma
// Note que $original vai ser idêntica a $string


Matéria baseada em: 
Acessado em: 14/03/2012

0 comentários:

Postar um comentário