• # crypt()

    Posté par . En réponse au journal L'art de stocker des mots de passe. Évalué à 8.

    Quid de la fonction crypt() ? Cette fonction utilise un algorithme configurable (md5, blowfish, sha-256 ou sha-512) avec un salt de la même façon que l'explication de bcrypt(), la lenteur artificielle en moins (crypt() n'applique pas la fonction de hash plusieurs fois). Comme pour bcrypt, l'algorithme choisis influence la "force" du hash.

    Il faut aussi mentionner que, tant pour crypt() que pour bcrypt(), le salt est intégré (en tant que préfixe) au hash final, après le numéro de l'algo de hashage utilisé. Donc, pour vérifier si un mot de passe est correct, il suffit de vérifier que (b)crypt(passwd, passwd) == hash.

    Bref, si vous n'avez pas de bcrypt() disponible, utilisez crypt() plutôt qu'une solution "à la main"...