Generator for SM3-hash

Beregn SM3-digester — GB/T 32905-2016, den kinesiske nasjonale kryptografiske hash-standarden — av tekst eller filer helt i nettleseren. Vanlig SM3 eller nøklet HMAC-SM3, heks- eller Base64-utdata, med et sidestilt SHA-256-spor for sammenligning. Ingenting lastes opp.
AlgoritmeSpalting
SM3–
SHA-256 (sammenligningsspor, bare tekstkilde)–
Detaljer–
Kontroll fra kommandolinjen — digesten denne siden skriver ut for en fil, samsvarer med openssl dgst -sm3 file.bin (OpenSSL 1.1.1+) og gmssl dgst -sm3 file.bin byte for byte. For HMAC-SM3: openssl dgst -sm3 -hmac <nøkkel> med en tekstnøkkel.
Selvtest
Kjører sidemotoren på nytt mot de offisielle vedleggsvektorene A i GB/T 32905-2016, HMAC-SM3-vektorene i GB/T 15852.2 (ISO/IEC 9797-2), en inkrementell kjøring i biter på 1000 byte, begge eksempelpoolene, Base64-sporet mot nettleserens egen koder, og de negative stiene (feil heks-nøkkel må avvises). Ingenting sendes noe sted.
Hva er SM3?
Kort fortalt: SM3 er den kryptografiske hashen fra det kinesiske standardiseringsorganet — en 256-bit Merkle–Damgård-hash i samme strukturelle familie som SHA-256, men med egne startverdier, rundekonstanter, boolske funksjoner og en 68-ords meldingsutvidelse, publisert som GM/T 0004-2012 og senere GB/T 32905-2016.
SM3 vs SHA-256 i oversikt
AspektSM3SHA-256
Digest / blokk / ordstørrelse256 / 512 / 32 bit256 / 512 / 32 bit
Kompresjonsrunder6464
MeldingsutvidelseW[0..67] + avledet W'[0..63], P1-permutasjonW[0..63] med σ0/σ1-rotasjoner
Rundekonstanterto konstanter T0..15=0x79CC4519, T16..63=0x7A879D8A, rotert med j64 konstanter K[0..63]
Boolske funksjonerFF/GG-bytte ved runde 16Ch/Maj overalt
Byte-rekkefølgebig-endianbig-endian
Publisert2010 (GM/T 0004-2012; GB/T 32905-2016)2001 (FIPS 180-2)
Internasjonal statusinkludert i ISO/IEC 10118-3:2018FIPS 180-4

Samme skjelett, ulik muskulatur: begge algoritmene deler meldingen i 512-bit-blokker og kjører 64 runder med miksing over åtte 32-bit-registre, men hver konstant, hver rotasjonsmengde og meldingsutvidelsessteget er forskjellig, så de gir helt urelaterte digester for samme input. SM3("abc") er 66c7f0f4...8f4ba8e0, mens SHA-256("abc") er ba7816bf...f20015ad — prøv begge med Eksempel-knappen.

Betyr «nasjonal standard» tryggere?

Nei — og det er ikke jobben. SM3 gir sikkerhet sammenlignbar med SHA-256: en 256-bit digest, ingen kjente praktiske kollisjons- eller preimage-angrep. Grunnen til at SM3 finnes, er uavhengighet fra suitene og regulatorisk samsvar: kinesiske regler for kommersiell kryptografi (商用密码, "SM") krever den innenlandske suiten i sertifiserte sektorer — bank, offentlig forvaltning, telekominfrastruktur — slik at hele stakken (hash, signatur, chiffer) styres av én nasjonal standardiseringsprosess i stedet for utenlandske. Utenfor den sammenhengen er SHA-256 og SM3 utskiftbare i styrke; velg SM3 når motparten, regulatoren eller protokollen (for eksempel TLS 1.3 med RFC 8998 SM-chiffersuitene) krever det.

Hvor SM3 passer inn i SM-pakken
  • SM3 (denne siden) — hashen. Også digesten inne i SM2-signaturer (ZA-verdien) og KDF-en i SM2-kryptering.
  • SM4 — 128-bit blokkchifferen («AES gjort nasjonal»), ECB/CBC på SM4-siden i denne familien.
  • SM2 — den elliptisk-kurve-baserte signatur- og krypteringsalgoritmen over kurven sm2p256v1, bygget på SM3.
  • SM9 — identitetsbasert kryptografi: e-postadressen er den offentlige nøkkelen.
Vanlige feil
  • Hashing av passord med SM3. SM3 er en rask hash for generell bruk, likt SHA-256 — milliarder gjetninger per sekund på en GPU. For passordlagring bruk bcrypt, scrypt, Argon2id eller PBKDF2 fra Passordhash-generatoren.
  • Å anta at den gamle C1C2C3-rekkefølgen betyr noe her. Chiffertekstrekkefølge er et SM2-tema; SM3 har ingen slik finesse. Utdataene er alltid 32 byte.
  • Forveksling av GM/T 0004-2012 og GB/T 32905-2016. Samme algoritme, samme testvektorer — GM/T er den bransjestandardiserte publikasjonen, GB/T den nasjonale. ISO/IEC 10118-3:2018 inkluderer den også.
  • Stol, men verifiser. Selvtesten på denne siden gjenspiller standardens egne vedleggsvektorer; hvis den ikke sier «0 feilet», skal ikke utdataene stoles på.
Ofte stilte spørsmål

Finnes SM3 i OpenSSL? Ja — OpenSSL 1.1.1 og senere: openssl dgst -sm3 file, HMAC via -hmac. GmSSL (den kinesiske forgreningen) har hatt det lenger. Denne siden trenger ingen av dem: algoritmen kjører i nettleseren.

Hva er HMAC-SM3 til? Meldingsautentisering: en digest som også beviser hvem som sendte den, fordi bare de som har den delte nøkkelen, kan lage den. Standardisert i GB/T 15852.2 / ISO/IEC 9797-2. Nøkkelen kan ha hvilken som helst lengde; over 64 byte hashes den først.

Hvorfor viser ikke filsporet SHA-256-sammenligningen? Sammenligningen bruker nettleserens innebygde WebCrypto-engangsdigest, som krever at hele inndata er i minnet — greit for tekst, ikke for en 200 MB fil strømmet i biter. SM3 selv beregnes inkrementelt og har ingen slik grense her.

Kan jeg få digesten som Base64? Ja — velgeren for utdataformat. Begge spor i hvert resultat kan kopieres eller lastes ned som en liten tekstrapport.