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