Hachage des mots de passe : Standards et bonnes pratiques 2026
Pourquoi le hachage reste un pilier critique de la sécurité
Même avec l’essor de l’authentification sans mot de passe (passkeys, WebAuthn), le stockage sécurisé des mots de passe reste indispensable pour la grande majorité des applications. Dans les audits que nous réalisons chez Achille 746, nous constatons encore régulièrement des implémentations faibles qui exposent des millions d’utilisateurs en cas de fuite de base de données.
Les algorithmes recommandés en 2026
Voici les algorithmes que nous recommandons selon le contexte :
- Argon2id (recommandé par défaut) : Vainqueur du Password Hashing Competition. Excellent équilibre entre résistance aux attaques GPU et aux attaques par canaux auxiliaires.
- bcrypt : Toujours valide quand le cost factor est suffisamment élevé (minimum 12-13 en 2026).
- scrypt : Bon choix quand on veut une résistance élevée à la parallélisation.
- PBKDF2 : Acceptable dans certains contextes legacy, mais moins recommandé aujourd’hui.
À éviter absolument : MD5, SHA-1, SHA-256/SHA-512 sans stretching (key derivation), et tout algorithme de hachage rapide non conçu pour les mots de passe.
Paramètres recommandés (2026)
- Argon2id : memory=64MB minimum, iterations=3, parallelism=4 (à adapter selon votre infrastructure)
- bcrypt : cost=13 ou plus
- scrypt : N=2^17, r=8, p=1 (minimum)
Bonnes pratiques de mise en œuvre
- Salt unique par utilisateur : Jamais de salt global ou réutilisé.
- Stocker les paramètres avec le hash : Utilisez les formats standards (ex:
$argon2id$v=19$m=65536,t=3,p=4$...). - Utiliser des bibliothèques maintenues : Ne réimplémentez jamais vous-même un algorithme de hachage.
- Implémenter une rotation progressive : Quand un utilisateur se connecte, re-hashez son mot de passe avec les nouveaux paramètres si nécessaire.
- Protéger les bases de données : Le hachage n’est qu’une couche. Chiffrez aussi les bases de données au repos.
"Un mot de passe bien haché reste souvent la dernière ligne de défense quand tout le reste a été compromis."
— Équipe Achille 746