2011-03-21 6 views
2

Comment puis-je décrypter un hachage MD5 à une chaîne en utilisant PHP?Déchiffrer MD5 hash à String avec PHP

+2

Les fonctions de hachage sont des fonctions à sens unique: http://en.wikipedia.org/wiki/Hash_functions –

+0

www.freerainbowtables.com essaie de désosser des mots de passe simples, mais l'idée est que MD5 reste un mystère. –

Répondre

5

Le hachage n'est pas un cryptage - vous ne pouvez pas.

+1

vous pouvez avec des collisions. – RobertPitt

+0

Dans certains comment il peut le casser en générant des hachages et le comparer à ce qu'il veut comme la liste du monde. – SIFE

+2

Non, il ne peut pas. Il peut potentiellement trouver des données qui produisent le même hachage. Il ne peut pas régénérer de manière fiable la chaîne d'origine. – Erik

3

Il n'existe aucun moyen de déchiffrer un hachage. Les fonctions de hachage sont, par nature, des fonctions à 1 sens. Si vous essayez de créer un cryptage pour les données des utilisateurs, vous devriez utiliser les fonctions de cryptage/décryptage normales.

Si vous essayez de déchiffrer les mots de passe «hachés», eh bien ... bonne chance avec celui-là.

2

Vous devriez lire sur ce qu'il fait réellement avant de supposer qu'il est déchiffrable, je ne vais pas entrer dans beaucoup de détails, mais MD5 est enfoncé et ne devrait pas être utilisé du tout.

Les hachages MD5 peuvent entrer en collision ce qui signifie que des chaînes totalement différentes peuvent produire le même hachage, provoquant un exploit dans l'algorithme.

si vous voulez une 2 voies cryptage vous devriez faire quelque chose comme ceci:

$key = 'password to (en/de)crypt'; 
$string = 'string to be encrypted'; 

//Encrypt 
base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,md5($key),$string,MCRYPT_MODE_CBC,md5(md5($key)))); 

//Decrypt 
rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($string), MCRYPT_MODE_CBC, md5(md5($key))), "\0"); 

Comme cité: Best way to use PHP to encrypt and decrypt passwords?

0

Si vous êtes à la recherche pour le décryptage, vous pouvez créer (ou obtenir) tables arc-en-ciel - essentiellement, créer un générateur de mot de passe qui crypte avec MD5 et inventer autant de hachages que vous le souhaitez. Enregistrez les hachages dans une base de données. De là, faites une recherche pour votre hash.