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é. |