Question

Je travaille sur un système de connexion PHP / MYSQL pour une cuve Web.Après avoir examiné à travers ainsi que des articles sur le Web ive propose un cadre de base et commencés à écrire du code pour cela.Cependant, ive vient à un peu d'impasse dans le cryptage de mot de passe.

Après une nuit de lecture ive découvert que:

  • Je devrais le mot de passe des utilisateurs avec au moins SHA1 ou SHA2
  • Je devrais également utiliser un sel généré au hasard (c'est ce que j'ai besoin d'aide pour) et l'ajouter au mot de passe avant de le crypter
  • Le mot de passe haché et le sel généré aléatoirement doit être stocké dans la base de données, puis interrogé et combiné / crypté, puis vérifié par le mot de passe haché des utilisateurs.

Mon problème vient à générer au hasard le sel,

Était-ce utile?

La solution

possibilités que je peux penser:

  • Utilisez mt_rand () dans une boucle pour choisir un code ASCII, obtenez le caractère correspondant avec < un href="http://php.net/chr%28%29" rel="nofollow"> chr () et concaténate au sel.

    Ceci permet de créer des sels avec n'importe quelle longueur.

  • Définissez une chaîne avec des caractères disponibles, utilisez mt_rand () dans une boucle pour choisir des positions aléatoires de Il, extraire le caractère dans la position sélectionnée avec substrat () ou mb_substr () et Concaténate au sel.

    Ceci permet de créer des sels avec un jeu de caractères choisi et une longueur.

  • Utilisez une fonction intégrée générant une chaîne aléatoire (par exemple, Uniqid () ) et éventuellement hachage .

    Ceci est rapide et simple.

J'utilise normalement la deuxième option.

Autres conseils

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top