2010-06-28 4 views
1

Quelle est la différence entre les méthodes de hachage disponibles en phpQuelle est la différence entre les méthodes de hachage de PHP?

md2 md4 md5 sha1 sha224 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 
ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160, 
4 tiger192,4 snefru snefru256 gost adler32 crc32 crc32b salsa10 salsa20 
haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160, 
4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192, 
5 haval224,5 haval256 

J'utilise généralement md5 pour stocker les mots de passe dans mon db ..

je recherchais mais je ne pouvais pas obtenir des avantages et des inconvénients précis

Répondre

9

Les différences sont celles de l'algorithme utilisé, qui détermine également la taille de la sortie (par exemple, md5 produit une sortie de 128 bits, sha 160 bits).

md5 et sha1 ont des faiblesses qui ont été découvertes (collisions dans l'espace de hachage), mais pour la plupart des applications, md5 est suffisant sauf si vous travaillez sur un site bancaire.

Vous DEVEZ cependant utiliser un sel (quel que soit l'algorithme de hachage utilisé), en utilisant simplement le mot de passe md5 du mot de passe, par exemple vous laisse potentiellement vulnérable à une attaque arc-en-ciel.

Edit: Il est plus d'une question Crypto que PHP en tant que tel

+0

MD5 est 128 bits et SHA-1 est 160. –

+1

+1 pour commenter l'utilisation du sel –

14

Ce sont tous les algorithmes différents. Certains d'entre eux sont des hachages cryptographiques, d'autres sont de simples checksums (tels que crc32 et adler32) qui sont très rapides à calculer mais ne devraient jamais être utilisés à des fins de cryptographie.

MD5 et SHA-1 étaient les hachages cryptographiques standard, mais récemment des faiblesses ont été trouvées dans les deux. Il vaut probablement mieux utiliser le nouveau SHA-256 à des fins de chiffrement. Les autres nouvelles variantes SHA utilisent moins ou plus de bits mais ne sont pas fondamentalement différentes.

Vous pouvez probablement trouver des informations plus détaillées sur la plupart de ces algorightms sur Wikipedia.

+5

+1 Pour se différencier des fonctions de hachage cryptographiques et non cryptographiques. – Gumbo

3

Vous ne voulez pas utiliser md5 ou tout hachage "simple" pour stocker des mots de passe dans une base de données. Vous voulez un good salt et bcrypt. La bibliothèque phpass fournit une bonne façon portable d'implémenter un stockage de mot de passe pas trop faible.

Questions connexes