Comment obtenir un hachage MD5 en Base64
- MD5 est présélectionné sous Algorithme.
- Pour un fichier, passez Entrée sur Fichier et déposez-le, ou plusieurs fichiers à la fois ; chacun obtient son propre résultat. Les fichiers de plus de 200 Mo sont lus par blocs de 8 Mo, avec un pourcentage de progression.
- Pour du texte, laissez Entrée sur Texte et saisissez ou collez. L’entrée est permet de hacher des données hex ou Base64 en tant qu’octets bruts plutôt que comme du texte UTF-8.
- Copiez la valeur Base64 pour les en-têtes et les API, ou Hex pour comparer avec la sortie de
md5sum. Les deux décrivent les mêmes 16 octets.
L’outil affiche un court avertissement indiquant que MD5 ne convient pas à un usage de sécurité, ce qui est exact et n’affecte pas les sommes de contrôle.
Hex ou Base64 : les mêmes 16 octets
| Entrée | MD5 (hex) | MD5 (Base64) |
|---|---|---|
| vide | d41d8cd98f00b204e9800998ecf8427e | 1B2M2Y8AsgTpgAmY7PhCfg== |
hello | 5d41402abc4b2a76b9719d911017c592 | XUFAKrxLKna5cZ2REBfFkg== |
The quick brown fox jumps over the lazy dog | 9e107d9d372bb6826bd81d3542a419d6 | nhB9nTcrtoJr2B01QqQZ1g== |
L’erreur la plus courante avec Content-MD5 consiste à encoder en Base64 le texte hex. Pour la phrase du renard, cela produit OWUxMDdkOWQzNzJiYjY4MjZiZDgxZDM1NDJhNDE5ZDY=, 44 caractères qu’aucun serveur n’acceptera. La longueur vous renseigne d’un coup d’œil : 24 caractères, c’est juste ; 44, c’est l’hex encodé par erreur.
Où l’on attend un MD5 en Base64
- Les en-têtes de requête
Content-MD5(RFC 1864). Amazon S3 le vérifie lors des envois, tout comme Azure Blob Storage, qui renvoie une erreur quand le corps ne correspond pas. - Google Cloud Storage indique le
md5Hashd’un objet en Base64, etgsutil hashaffiche du Base64 sauf si vous passez-hpour l’hex. - Les propriétés des blobs Azure stockent aussi
Content-MD5en Base64. - Les anciennes API et les systèmes de messagerie qui ont adopté l’en-tête avant l’apparition des sommes de contrôle basées sur SHA.
D’autres endroits restent à l’hex : md5sum et la plupart des pages de téléchargement, ainsi que l’ETag d’un envoi S3 en une seule partie, qui est le MD5 hex entre guillemets. Les ETag S3 multipart se terminent par - suivi d’un nombre de parties et ne sont pas du tout le MD5 du fichier complet : ils ne correspondront donc jamais au résultat de cet outil.
MD5 en Base64 en ligne de commande et dans le code
openssl md5 -binary file.bin | base64
md5sum file.bin | cut -d' ' -f1 | xxd -r -p | base64
import base64, hashlib
with open("file.bin", "rb") as f:
digest = hashlib.file_digest(f, "md5").digest()
print(base64.b64encode(digest).decode())
hashlib.file_digest nécessite Python 3.11 ou plus récent ; dans les versions antérieures, lisez le fichier par blocs et appelez update(). En Node.js, crypto.createHash("md5").update(buffer).digest("base64") donne directement la forme Base64. Si une API plus récente propose plutôt une somme de contrôle SHA-256, préférez-la ; SHA-256 en Base64 produit ces valeurs de la même façon. D’autres extraits figurent sur les pages OpenSSL et Python.
FAQ
Qu'est-ce que l'en-tête Content-MD5 ?
Un en-tête HTTP défini par la RFC 1864, qui transporte le Base64 de l’empreinte MD5 de 16 octets du corps. Des services de stockage comme Amazon S3 et Azure Blob Storage s’en servent pour rejeter les envois corrompus pendant le transfert.
Pourquoi mon MD5 en Base64 fait-il 44 caractères ?
Vous avez encodé la chaîne hex de 32 caractères au lieu des 16 octets bruts. Un MD5 correct en Base64 fait toujours 24 caractères et se termine par ==. Hachez avec une sortie binaire (-binary dans OpenSSL, .digest() en Python) avant d’encoder.
Comment convertir une somme de contrôle MD5 en hex en Base64 ?
Décodez l’hex en octets et encodez-les en Base64 : 9e107d9d372bb6826bd81d3542a419d6 devient nhB9nTcrtoJr2B01QqQZ1g==. Le convertisseur hex en Base64 le fait en un seul collage.
MD5 est-il encore sûr ?
Pour détecter une corruption accidentelle, oui. Pour tout ce qu’un attaquant pourrait influencer, non : on peut produire des collisions MD5 sur un ordinateur portable, si bien que deux fichiers différents peuvent avoir le même hachage. Utilisez SHA-256 pour l’intégrité face à la falsification, et un hachage de mots de passe comme Argon2 ou bcrypt pour les mots de passe.