Catégories
Si vous voulez construire un système de gestion de l'utilisateur - ou travailler sur une autre personne - il faut connaître quelques rudiments sur la manière dont les mots de passe sont cryptés ou haché. En d'autres termes, comment sont-elles faites pour le stockage sûr?

Qu'est-ce qu'un hash?

Avant qu'un mot de passe est stocké, il est souvent transformé en un «hash». Ce n'est pas techniquement une forme de cryptage , parce que c'est un processus à sens unique. Une fois qu'un mot de passe a été haché ... Il n'ya pas de retour en arrière.

Par exemple, si je hachage le membre de phrase «Bananas», je pourrais revenir ce fouillis de caractères illisibles - "1ee31b77d0697c36914b99d1428f7f32."

La raison pour laquelle nous faisons cela est tellement que quelqu'un qui considère la base de données - un hacker ou peut-être malhonnête administrateur système - ne peuvent imaginer un mot de passe. Il ou elle devra voir le hachage et n'ont aucune idée de ce que le mot de passe est
.
Le script vérifie que votre mot de passe quand vous vous connectez sait comment a été créé le hash - afin qu'il puisse recréer hash que si vous lui donnez le même mot de passe. Le hachage, il crée en fonction de vos entrées peuvent ensuite être vérifiées par rapport à celui dans la base de données pour voir si vous avez entré le vrai mot de passe.

Ok, How Do We Créer un hachage?

Il existe deux grandes fonctions pour créer des hashs en php - md5 () et crypt ().

Md5 est la fonction la plus simple, de sorte que nous allons commencer. Vous appelez la fonction comme ça ...

Md5 ( "Mot de passe Chaîne de caractères");

Cela renvoie le hachage crypté. Si vous avez appelé md5 ( "Bananas"), vous devriez toujours obtenir "1ee31b77d0697c36914b99d1428f7f32" retour par la suite. Vous pouvez ensuite conserver ce membre de phrase dans la base de données pour vérifier le mot de passe dans le futur.

Crypte est un peu plus compliquée. Avec md5, vous obtenez toujours le même résultat. Avec crypte, vous pouvez utiliser différentes clés de chiffrement ou de "sels" pour obtenir des résultats différents. Vous pouvez crypter quelque chose avec crypte comme ça ...

Crypt ( "Mot de passe Chaîne de caractères");

Ou

Crypt ( "Mot de passe Chaîne de caractères", "Salt");

Si vous ne fournissez pas de sel ou de clé de cryptage, les PHP en crée un pour vous. Cela change la manière dont le terme est haché. Donc, si vous avez appelé crypte ( "Bananas") deux fois, il vous faudrait obtenir deux résultats différents. Voici un peu plus de lecture sur la façon d'utiliser crypte de hachage et de crypter un mot de passe en PHP.

Alors, qui est Mieux?

C'est discutable. Dans la plupart des cas, la crypte utilise le même algorithme de hachage qui ne md5. N'est pas non plus nécessairement "forte" que les autres.

Le seul avantage que ne crypte a est qu'il peut une autre clé de chiffrement ou de sel à chaque fois. Le même mot de passe peuvent avoir un hachage différent si elle est créée avec un sel différent.

Par conséquent, il est presque impossible de créer un dictionnaire des hashs connus. Avec md5, cela peut se faire facilement - mot de passe parce que chaque phrase a une seule possible valeur de hachage.

Un dictionnaire comme celui-ci fera une tentative de piratage beaucoup plus facile que si l'ordinateur a dû hachage et physiquement possible vérifier chaque phrase. Voici un peu plus de lecture sur la différence entre md5 et la crypte.

Bonne chance hashing, et rappelez-vous - la meilleure façon d'apprendre de php est d'essayer de nouvelles choses. Alors allez-pratique.


Relaterade Artiklar