O MD5 Message- Digest Algorithm é um algoritmo de criptografia unidirecional freqüentemente usado para a criação de chaves secretas , que são chamados hashes MD5. Uma vez que a criptografia é uma maneira , duas cadeias de texto diferentes podem produzir o mesmo hash MD5 , o que significa que você não pode decifrá-lo . Existe um número infinito de formas para produzir o mesmo hash . No entanto , os hackers têm maneiras de descobrir as cordas usadas para criar hashes , assim que paga para criá-los com cuidado. PHP : Hypertext Preprocessor é uma linguagem de programação que suporta MD5 e outros algoritmos de criptografia também. Instruções
1
Criar uma cadeia de sal, que é uma cadeia unguessable usada para criptografia. A seqüência de sal será usado para a criação de hashes , bem como determinar a sua validade. Uma maneira de criar uma boa seqüência de sal é embaralhando um monte de caracteres aleatórios com função md5 do PHP. A saída da função é um número hexadecimal de 32 dígitos , dando-lhe mais do que 3,40 x 10 ^ 38 combinações possíveis. Por exemplo, incluir algo como o seguinte em seu código PHP:
$ sal = md5 ( " 4hJUd5sPP97hT ");
2
Combine o texto com a string de sal com o operador de concatenação , que na verdade é um período , e criptografá-lo com a função md5 . Por exemplo, se você estiver criptografando senhas , digite:
$ password = " Us54EEh5R ";
$ criptografada = md5 ( . $ Password $ sal );
"Rainbow mesas " são bases de dados utilizadas para quebrar hashes MD5 , a maior das quais têm entre 10 e 20 mil milhões de entradas. Mesmo que um banco de dados tinha 100 bilhões de hashes MD5 distintos , isso é menos de uma em 10 ^ 27 das combinações possíveis. Se uma gota de água é de cerca de 1/10 cm ^ 3 , levaria cerca de 1,4 x 10 ^ 25 gotas para encher os oceanos da Terra . Portanto , as tabelas do arco-íris representam menos de uma queda em todos os oceanos da Terra. Se a seqüência de sal é bom, não há quase nenhuma chance de o hash criptografado está em um banco de dados. Mesmo se um dos bancos de dados teve o mesmo hash , a seqüência utilizada para criar seria diferente daquele no banco de dados , porque eles não podem desperdiçar espaço de banco de dados valiosos sobre as infinitas combinações de senhas MD5 - salgado. Essas bases de dados estão indo atrás de alvos muito mais simples.
3
Verifique hashes , conforme necessário , criando o hash como você fez antes e compará-lo com o original. No caso de senhas , armazenar as senhas criptografadas em um banco de dados . Quando alguém tenta usar uma senha, criptografar a senha digitada com o sal , e compará-lo com a cópia do banco de dados . Desta forma , mesmo que o administrador de banco de dados não sabe nenhuma das senhas. Por exemplo, digite :
$ encrypted_entry = md5 ( $ $ entrada de sal. );
If ($ encrypted_entry == $ criptografada) $ válido = TRUE;
mais $ válido = false;