Bonjour à tous,
Je me renseigne sur l'encodage des passwords pour mes différentes applications web et je me rends compte que PHP intègre ça nativement dans son framework. Cool.
En effet, on encode facilement avec password_hash() et on vérifie si le mot de passe saisi correspond bien au hash qu'on a en base de données avec password_verify(). Facile!
La fonction password_hash() retourne une valeur hashée contenant toutes les informations nécessaires (encodage+salt) à password_verify(). Cette dernière peut à partir de là définir quel est le salt et en l'utilisant de nouveau comparer le hash du mdp.
Ce que je ne comprend pas c'est comment fait cette fonction password_verify() pour déterminer quel est le salt à chaque fois. Sachant quelle y arrive, est-ce que finalement password_hash() est si bien sécurisé que ça?
Je ne traite pas de données cruciales. Ni pour des millions d'utilisateurs à travers le monde. Mais j'aime bien comprendre et je n'ai rien trouvé dans la docs officielle.
Et je me dis que si password_verify() peut retrouver le salt à partir de la chaine hashée, alors un hacker aussi.
Est-ce que par hasard vous pourriez me dire à quel moment il y a un truc que je n'ai pas compris?
D'avance merci.
Partager