SM3-Hash-Generator

Berechnen Sie SM3-Digests — GB/T 32905-2016, der chinesische nationale Standard für kryptografische Hashes — für Text oder Dateien vollständig in Ihrem Browser. Einfaches SM3 oder schlüsselbasiertes HMAC-SM3, Ausgabe als Hex oder Base64, mit einer Vergleichsspur für SHA-256 nebeneinander. Es wird nichts hochgeladen.
AlgorithmusDigest
SM3–
SHA-256 (Vergleichsspur, nur Textquelle)–
Einzelheiten–
Kreuzprüfung in der Kommandozeile — der Digest, den diese Seite für eine Datei ausgibt, stimmt Byte für Byte mit openssl dgst -sm3 file.bin (OpenSSL 1.1.1+) und gmssl dgst -sm3 file.bin überein. Für HMAC-SM3: openssl dgst -sm3 -hmac <key> mit einem Textschlüssel.
Selbsttest
Führt die Engine der Seite erneut gegen die offiziellen Testvektoren aus Anhang A von GB/T 32905-2016, die HMAC-SM3-Vektoren aus GB/T 15852.2 (ISO/IEC 9797-2), einen inkrementellen Lauf in 1000-Byte-Blöcken, beide Beispielpools, die Base64-Spur gegen den eigenen Kodierer des Browsers und die Negativpfade (ein fehlerhafter Hex-Schlüssel muss abgelehnt werden). Nichts wird irgendwohin gesendet.
Was ist SM3?
In einem Satz: SM3 ist der kryptografische Hash der chinesischen nationalen Normungsbehörde — ein 256-Bit-Merkle–Damgård-Hash aus derselben strukturellen Familie wie SHA-256, aber mit eigenen Anfangswerten, Rundenkonstanten, booleschen Funktionen und einer Nachrichtenexpansion über 68 Wörter. Veröffentlicht als GM/T 0004-2012 und später als GB/T 32905-2016.
SM3 gegenüber SHA-256 auf einen Blick
AspektSM3SHA-256
Digest-/Block-/Wortgröße256 / 512 / 32 Bit256 / 512 / 32 Bit
Kompressionsrunden6464
NachrichtenexpansionW[0..67] + abgeleitetes W'[0..63], Permutation P1W[0..63] mit σ0/σ1-Rotationen
Rundenkonstantenzwei Konstanten T0..15=0x79CC4519, T16..63=0x7A879D8A, um j rotiert64 Konstanten K[0..63]
Boolesche FunktionenFF/GG-Wechsel in Runde 16Ch/Maj durchgehend
Byte-ReihenfolgeBig-EndianBig-Endian
Veröffentlicht2010 (GM/T 0004-2012; GB/T 32905-2016)2001 (FIPS 180-2)
Internationaler Statusenthalten in ISO/IEC 10118-3:2018FIPS 180-4

Gleiches Skelett, andere Muskeln: Beide Algorithmen zerlegen die Nachricht in 512-Bit-Blöcke und führen 64 Mischrunden über acht 32-Bit-Register aus, aber jede Konstante, jeder Rotationsbetrag und der Schritt der Nachrichtenexpansion unterscheiden sich, daher erzeugen sie für dieselbe Eingabe völlig unverwandte Digests. SM3("abc") ist 66c7f0f4...8f4ba8e0, während SHA-256("abc") ba7816bf...f20015ad ist — probieren Sie beide mit der Schaltfläche Beispiel aus.

Bedeutet „nationaler Standard“ sicherer?

Nein — und das ist nicht seine Aufgabe. SM3 bietet eine Sicherheit, die mit SHA-256 vergleichbar ist: ein 256-Bit-Digest, und es sind keine praktischen Kollisions- oder Urbild-Angriffe bekannt. Den Grund für SM3 bildet die Unabhängigkeit der Suite und die regulatorische Konformität: Chinesische Vorschriften für kommerzielle Kryptografie (商用密码, „SM“) verlangen in zertifizierten Bereichen — Banken, Behörden, Telekommunikationsinfrastruktur — die heimische Suite, damit der gesamte Stapel (Hash, Signatur, Chiffre) durch einen nationalen Normungsprozess und nicht durch ausländische kontrolliert wird. Außerhalb dieses Zusammenhangs sind SHA-256 und SM3 in der Stärke austauschbar; wählen Sie SM3, wenn Ihre Gegenseite, Ihre Aufsichtsbehörde oder ein Protokoll (zum Beispiel TLS 1.3 mit den SM-Chiffresuiten nach RFC 8998) es verlangt.

Wo SM3 innerhalb der SM-Suite steht
  • SM3 (diese Seite) — der Hash. Außerdem der Digest in SM2-Signaturen (der Wert ZA) und die KDF der SM2-Verschlüsselung.
  • SM4 — die 128-Bit-Blockchiffre (man denke an „AES, national gemacht“), ECB/CBC auf der SM4-Seite dieser Familie.
  • SM2 — der Signatur- und Verschlüsselungsalgorithmus auf elliptischen Kurven über der Kurve sm2p256v1, aufgebaut auf SM3.
  • SM9 — identitätsbasierte Kryptografie: Ihre E-Mail-Adresse ist Ihr öffentlicher Schlüssel.
Häufige Fehler
  • Passwörter mit SM3 hashen. SM3 ist ein schneller Allzweck-Hash wie SHA-256 — auf einer GPU Milliarden Rateversuche pro Sekunde. Für die Speicherung von Passwörtern verwenden Sie bcrypt, scrypt, Argon2id oder PBKDF2 aus dem Passwort-Hash-Generator.
  • Hier kommt es auf die alte Reihenfolge C1C2C3 an. Die Reihenfolge der Chiffretexte ist ein Thema von SM2; SM3 kennt diese Besonderheit nicht. Seine Ausgabe ist immer 32 Byte lang.
  • GM/T 0004-2012 und GB/T 32905-2016 verwechseln. Derselbe Algorithmus, dieselben Testvektoren — GM/T ist die Veröffentlichung des Branchenstandards, GB/T die nationale. ISO/IEC 10118-3:2018 enthält ihn ebenfalls.
  • Vertrauen, aber prüfen. Der Selbsttest auf dieser Seite spielt die eigenen Anhangsvektoren des Standards ab; meldet er nicht „0 fehlgeschlagen“, vertrauen Sie der Ausgabe nicht.
FAQ

Ist SM3 in OpenSSL verfügbar? Ja — OpenSSL 1.1.1 und neuer: openssl dgst -sm3 file, HMAC über -hmac. GmSSL (die chinesische Abspaltung) hat es länger. Diese Seite braucht keines von beidem: Der Algorithmus läuft in Ihrem Browser.

Wofür ist HMAC-SM3 da? Zur Nachrichtenauthentifizierung: ein Digest, der zugleich belegt, wer ihn gesendet hat, weil ihn nur Inhaber des gemeinsamen Schlüssels erzeugen können. Standardisiert in GB/T 15852.2 / ISO/IEC 9797-2. Der Schlüssel kann beliebig lang sein; über 64 Byte wird er zuerst gehasht.

Warum zeigt die Dateispur keinen Vergleich mit SHA-256? Der Vergleich nutzt den eingebauten One-Shot-Digest von WebCrypto des Browsers, der die gesamte Eingabe im Speicher braucht — für Text in Ordnung, nicht aber für eine 200-MB-Datei, die in Blöcken gelesen wird. SM3 selbst wird inkrementell berechnet und hat hier keine solche Grenze.

Kann ich den Digest als Base64 erhalten? Ja — über die Auswahl des Ausgabeformats. Beide Spuren jedes Ergebnisses lassen sich als kleiner Textbericht kopieren oder herunterladen.