Hash

Algorithme Description Taille de sortie Usages courants Avantages Limites
MD5 Algorithme de hachage largement utilisé dans le passé, désormais considéré comme obsolète en raison de vulnérabilités aux collisions. 128 bits (16 octets) - Empreintes numériques
- Sommes de contrôle
- Vérifications d'intégrité (non sécurisées)
- Rapide à calculer
- Bon pour les vérifications d'intégrité de fichiers non critiques.
- Vulnérable aux collisions (deux données différentes produisant le même hash)
- Considéré comme non sécurisé.
SHA-1 Algorithme plus sécurisé que MD5 mais également obsolète en raison de vulnérabilités aux collisions découvertes. 160 bits (20 octets) - Anciennement utilisé pour les signatures numériques et les certificats SSL - Légèrement plus sécurisé que MD5
- Encore utilisé dans des contextes non sensibles.
- Vulnérable aux attaques par collision depuis 2017.
- Remplacé par SHA-2 et SHA-3 pour des usages sécurisés.
SHA-256 Partie de la famille SHA-2, algorithme de hachage sécurisé largement utilisé aujourd'hui. 256 bits (32 octets) - Certificats SSL
- Signatures numériques
- Stockage sécurisé des mots de passe
- Blockchain
- Très sécurisé contre les collisions et les attaques de préimage. - Plus lent à calculer que MD5 ou SHA-1, mais avec un meilleur niveau de sécurité.
SHA-512 Variante plus sécurisée et plus large de SHA-256, avec une sortie de 512 bits. 512 bits (64 octets) - Applications nécessitant un niveau de sécurité très élevé
- Stockage de mots de passe
- Offre une très grande résistance contre les attaques cryptographiques.
- Efficace même avec de très grands fichiers.
- Consomme plus de ressources que SHA-256.
- Peut être excessif pour des applications standards.
SHA-3 Nouvelle génération de SHA, basée sur une approche différente de SHA-2 (Keccak). Variables (224, 256, 384, 512) - Sécurité avancée
- Utilisé dans des systèmes de cryptographie moderne et pour des applications post-quantum.
- Plus sécurisé que SHA-2, résistant aux attaques post-quantum
- Flexible en termes de taille de sortie.
- Moins adopté que SHA-2 pour l'instant, mais en expansion.
RIPEMD-160 Algorithme de hachage moins courant, développé en Europe, conçu pour être similaire à SHA-1 mais plus sécurisé. 160 bits (20 octets) - Utilisé dans certaines applications de cryptographie comme Bitcoin. - Sécurisé et non vulnérable aux attaques trouvées dans MD5 et SHA-1. - Moins utilisé et supporté que les algorithmes de la famille SHA.
- SHA-2 est généralement préféré.
Whirlpool Algorithme de hachage conçu pour fonctionner sur 512 bits, basé sur AES. 512 bits (64 octets) - Systèmes de cryptographie nécessitant une sécurité accrue. - Taille de sortie de 512 bits, haute sécurité
- Conçu pour les systèmes de stockage et les signatures numériques.
- Moins largement adopté que SHA-2 ou SHA-3.
BLAKE2 Successeur du BLAKE (un finaliste de la compétition SHA-3), rapide et sécurisé, conçu pour être une alternative à MD5 et SHA-2. Variables (256, 512 bits) - Applications nécessitant un hachage rapide et sécurisé. - Très rapide par rapport à SHA-2 et SHA-3, tout en restant sécurisé.
- Flexible avec des tailles de sortie.
- Encore peu utilisé en dehors de certaines communautés de développeurs.
Argon2 Algorithme de dérivation de clé et de hachage de mot de passe, gagnant du Password Hashing Competition (PHC) en 2015. Variables - Stockage sécurisé de mots de passe (hashing) - Conçu pour résister aux attaques par force brute sur les mots de passe.
- Paramétrable (mémoire, temps, etc.).
- Nécessite plus de configuration que des algorithmes comme SHA-256.
bcrypt Algorithme de hachage conçu spécifiquement pour le stockage sécurisé des mots de passe. Variable (généralement 184 bits) - Stockage de mots de passe dans les systèmes modernes - Utilise un facteur de coût ajustable, augmentant le temps de calcul pour résister aux attaques par force brute. - Relativement plus lent que SHA-256 ou SHA-512, ce qui est intentionnel pour renforcer la sécurité.
scrypt Algorithme de hachage de mot de passe conçu pour être coûteux en termes de calcul et de mémoire, empêchant les attaques par matériel spécialisé (ASIC). Variable - Stockage de mots de passe
- Cryptomonnaies (ex: Litecoin).
- Résistant aux attaques par force brute et aux attaques matérielles.
- Peut être ajusté en termes de consommation mémoire.
- Plus complexe à implémenter que bcrypt ou Argon2.
Tiger Algorithme de hachage rapide souvent utilisé dans des environnements contraints, comme les systèmes embarqués. 192 bits (24 octets) - Vérifications d'intégrité
- Hachage dans des environnements limités en ressources.
- Conçu pour être rapide sur des architectures 64 bits.
- Bon pour des contextes de faible performance.
- Moins sécurisé et moins adopté que SHA-2.
- Vulnérable à certaines attaques cryptographiques.
HAVAL Algorithme de hachage configurable, il permet de choisir la taille de sortie et le nombre de passes de hachage. Variables (128, 160, 192, 224, 256 bits) - Utilisé dans des systèmes qui nécessitent un hachage flexible. - Très flexible (nombre de passes, taille de sortie).
- Peut augmenter la sécurité par plusieurs passes.
- Peu utilisé aujourd'hui.
- Moins sécurisé que SHA-2 ou SHA-3 en termes de résistance aux attaques.
FNV (Fowler-Noll-Vo) Algorithme de hachage non cryptographique très rapide, utilisé dans des contextes de hachage de données (ex: tables de hachage). 32, 64, 128 bits - Tables de hachage
- Algorithmes de recherche.
- Très rapide et simple à implémenter.
- Bien adapté pour des structures de données non sécurisées.
- Non sécurisé pour des usages cryptographiques.
- Vulnérable aux attaques de collision délibérées.
GOST Algorithme de hachage développé en Russie, utilisé dans certaines normes locales. 256 bits - Utilisé principalement dans des applications russes et post-soviétiques. - Reconnu pour sa sécurité dans certains systèmes réglementés. - Moins adopté à l'international.
- Moins documenté et audité par la communauté internationale.
CRC32 Algorithme de hachage non cryptographique utilisé principalement pour la vérification d'intégrité des données (contrôle de redondance cyclique). 32 bits - Vérification d'intégrité
- Sommes de contrôle pour détecter des erreurs dans des fichiers ou des paquets.
- Très rapide et efficace pour détecter les erreurs de transmission. - Non cryptographique : vulnérable aux collisions intentionnelles.
- Inadapté pour des contextes de sécurité.