Le MD5 Message- Digest Algorithm est un algorithme de chiffrement à sens unique souvent utilisé pour créer des clés secrètes , qui sont appelés hachage MD5 . Depuis le cryptage est un moyen , deux chaînes de texte différents peuvent produire le même hachage MD5, ce qui signifie que vous ne pouvez pas déchiffrer. Il ya un nombre infini de façons de produire le même hachage . Cependant , les pirates ont les moyens de découvrir les chaînes utilisées pour créer des tables de hachage, de sorte qu'il paie pour les créer avec soin. PHP : Hypertext Preprocessor est un langage de programmation qui supporte les algorithmes de chiffrement MD5 et d'autres aussi. Instructions
1
créer une chaîne de sel, ce qui est une chaîne unguessable utilisée pour le chiffrement. La chaîne de sel sera utilisé pour créer des hashs ainsi que de déterminer leur validité. Une façon de créer une bonne chaîne de sel est en brouillant un tas de caractères aléatoires avec la fonction md5 de PHP. La sortie de la fonction est un nombre hexadécimal à 32 chiffres , vous donnant plus de 3,40 x 10 ^ 38 combinaisons possibles. Par exemple, inclure quelque chose comme ce qui suit dans votre code PHP:
$ sel = md5 ( " 4hJUd5sPP97hT ");
2
Combiner le texte avec la chaîne de sel avec l'opérateur de concaténation , qui est en fait une période , et le chiffrer avec la fonction md5 . Par exemple, si vous chiffrez les mots de passe , tapez:
$ password = " Us54EEh5R " ;
$ cryptée = md5 ( . $ Password $ de sel) ;
"Rainbow tables »sont des bases de données utilisées pour le craquage de hachage MD5 , dont les plus importants ont entre 10 et 20 milliards d'entrées . Même si une base de données avait 100 milliards de hachage MD5 distinctes , c'est moins d'un sur 10 ^ 27 des combinaisons possibles. Si une goutte d'eau est d'environ 1/10 cm ^ 3 , il faudrait environ 1,4 x 10 ^ 25 gouttes pour remplir les océans de la Terre. Par conséquent, tables arc-en montant à moins qu'une goutte dans tous les océans de la Terre. Si votre chaîne de sel est bon, il n'y a presque aucune chance au hachage cryptée est dans une base de données . Même si l'une des bases de données avaient le même hash , la chaîne utilisée pour créer ce serait différent de celui de la base de données , parce qu'ils ne peuvent pas perdre de l'espace de base de données précieuses sur les combinaisons infinies de mots de passe MD5- salés . Ces bases de données vont après des cibles beaucoup plus simples .
3
Vérifiez hashs au besoin en créant le hachage comme vous l'avez fait avant et de le comparer avec l'original. Dans le cas de mots de passe , le stockage des mots de passe cryptés dans une base de données . Quand quelqu'un essaie d'utiliser un mot de passe , chiffrer le mot de passe entré avec le sel et le comparer avec la copie de la base de données. De cette façon, même l'administrateur de base de données ne connaît pas les mots de passe . Par exemple, tapez :
$ encrypted_entry = md5 ( $ entry $ sel. ) ;
If ($ encrypted_entry == $ crypté) $ valide = TRUE;
autre $ valid = FALSE;