Générateur de hachage SM3

Calculez les empreintes SM3 — GB/T 32905-2016, la norme chinoise nationale de hachage cryptographique — de textes ou de fichiers entièrement dans votre navigateur. SM3 simple ou HMAC-SM3 avec clé, sortie en hexadécimal ou en Base64, avec une voie SHA-256 côte à côte pour comparaison. Rien n’est envoyé.
AlgorithmeEmpreinte
SM3–
SHA-256 (voie de comparaison, source texte uniquement)–
Détails–
Vérification en ligne de commande — l’empreinte affichée par cette page pour un fichier correspond, octet pour octet, à openssl dgst -sm3 file.bin (OpenSSL 1.1.1+) et à gmssl dgst -sm3 file.bin. Pour HMAC-SM3 : openssl dgst -sm3 -hmac <clé> avec une clé texte.
Autotest
Relance le moteur de la page sur les vecteurs officiels de l’annexe A de GB/T 32905-2016, les vecteurs HMAC-SM3 de GB/T 15852.2 (ISO/IEC 9797-2), une exécution incrémentale par blocs de 1000 octets, les deux jeux d’exemples, la voie Base64 contre l’encodeur natif du navigateur, et les cas négatifs (une clé hexadécimale mal formée doit être rejetée). Rien n’est envoyé nulle part.
Qu’est-ce que SM3 ?
En une phrase : SM3 est la fonction de hachage cryptographique de l’organisme chinois de normalisation nationale — un hachage Merkle–Damgård de 256 bits, de la même famille structurelle que SHA-256, mais avec ses propres valeurs initiales, constantes de ronde, fonctions booléennes et une expansion de message de 68 mots, publié sous les références GM/T 0004-2012 puis GB/T 32905-2016.
SM3 contre SHA-256 en un coup d’œil
AspectSM3SHA-256
Taille de l’empreinte / du bloc / du mot256 / 512 / 32 bits256 / 512 / 32 bits
Rondes de compression6464
Expansion du messageW[0..67] + W'[0..63] dérivés, permutation P1W[0..63] avec rotations σ0/σ1
Constantes de rondedeux constantes T0..15=0x79CC4519, T16..63=0x7A879D8A, tournées de j64 constantes K[0..63]
Fonctions booléennesFF/GG bascule à la ronde 16Ch/Maj sur toute la ronde
Ordre des octetsgros-boutistegros-boutiste
Publication2010 (GM/T 0004-2012 ; GB/T 32905-2016)2001 (FIPS 180-2)
Statut internationalrepris dans ISO/IEC 10118-3:2018FIPS 180-4

Même squelette, muscles différents : les deux algorithmes découpent le message en blocs de 512 bits et exécutent 64 rondes de mélange sur huit registres de 32 bits, mais chaque constante, chaque quantité de rotation et l’étape d’expansion du message diffèrent, si bien qu’ils produisent des empreintes totalement sans rapport pour une même entrée. SM3(« abc ») vaut 66c7f0f4...8f4ba8e0 tandis que SHA-256(« abc ») vaut ba7816bf...f20015ad — essayez les deux avec le bouton Exemple.

« Norme nationale » signifie-t-il plus sûr ?

Non — et ce n’est pas son rôle. SM3 offre une sécurité comparable à SHA-256 : une empreinte de 256 bits, et aucune attaque pratique en collision ou en préimage n’est connue. La raison d’être de SM3 est l’indépendance de la suite et la conformité réglementaire : la réglementation chinoise sur la cryptographie commerciale (商用密码, « SM ») impose la suite nationale dans les secteurs certifiés — banque, administration, infrastructures de télécommunications — afin que toute la pile (hachage, signature, chiffrement) soit contrôlée par un processus de normalisation national plutôt qu’étranger. Hors de ce contexte, SHA-256 et SM3 sont interchangeables en robustesse ; choisissez SM3 lorsque votre interlocuteur, votre régulateur ou votre protocole (par exemple TLS 1.3 avec les suites de chiffrement SM de la RFC 8998) le demande.

Où se situe SM3 dans la suite SM
  • SM3 (cette page) — le hachage. C’est aussi l’empreinte utilisée dans les signatures SM2 (la valeur ZA) et la KDF du chiffrement SM2.
  • SM4 — le chiffrement par blocs de 128 bits (pensez à « l’AES national »), en ECB/CBC sur la page SM4 de cette famille.
  • SM2 — l’algorithme de signature et de chiffrement sur courbe elliptique, sur la courbe sm2p256v1, bâti sur SM3.
  • SM9 — cryptographie basée sur l’identité : votre adresse e-mail est votre clé publique.
Erreurs courantes
  • Hacher des mots de passe avec SM3. SM3 est un hachage rapide à usage général, comme SHA-256 — des milliards de tentatives par seconde sur un GPU. Pour stocker des mots de passe, utilisez bcrypt, scrypt, Argon2id ou PBKDF2 avec le Générateur de hachage de mots de passe.
  • En supposant que l’ancien ordre C1C2C3 compte ici. L’ordre du texte chiffré est un sujet de SM2 ; SM3 n’a pas cette subtilité. Sa sortie fait toujours 32 octets.
  • Confondre GM/T 0004-2012 et GB/T 32905-2016. Même algorithme, mêmes vecteurs de test — GM/T est la publication de référence du secteur, GB/T la publication nationale. La norme ISO/IEC 10118-3:2018 le reprend également.
  • Faites confiance, mais vérifiez. L’autotest de cette page rejoue les vecteurs de l’annexe même de la norme ; s’il n’indique pas « 0 échec », ne vous fiez pas à la sortie.
FAQ

SM3 est-il disponible dans OpenSSL ? Oui — OpenSSL 1.1.1 et versions ultérieures : openssl dgst -sm3 file, HMAC via -hmac. GmSSL (la variante chinoise) le propose depuis plus longtemps. Cette page n’a besoin de rien de tout cela : l’algorithme s’exécute dans votre navigateur.

À quoi sert HMAC-SM3 ? À l’authentification de message : une empreinte qui prouve aussi l’expéditeur, car seuls les détenteurs de la clé partagée peuvent la produire. Normalisé dans GB/T 15852.2 / ISO/IEC 9797-2. La clé peut avoir n’importe quelle longueur ; au-delà de 64 octets, elle est d’abord hachée.

Pourquoi la voie fichier n’affiche-t-elle pas la comparaison SHA-256 ? La comparaison utilise l’empreinte WebCrypto intégrée au navigateur, en un seul bloc, ce qui exige que toute l’entrée tienne en mémoire — acceptable pour du texte, pas pour un fichier de 200 Mo lu par morceaux. SM3 lui-même est calculé de manière incrémentale et n’a pas cette limite ici.

Puis-je obtenir l’empreinte en Base64 ? Oui — via le sélecteur Format de sortie. Les deux voies de chaque résultat peuvent être copiées ou téléchargées sous forme de petit rapport texte.