SM3-hash-generator

Beregn SM3-digests — GB/T 32905-2016, den kinesiske nationale kryptografiske hash-standard — af tekst eller filer helt i browseren. Almindelig SM3 eller nøglet HMAC-SM3, hex- eller Base64-output, med en SHA-256-bane side om side til sammenligning. Intet uploades.
AlgoritmeDigestion
SM3–
SHA-256 (sammenligningsbane, kun tekstkilde)–
Detaljer–
Kommandolinjekontrol — digest'en, denne side udskriver for en fil, matcher 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 <key> med en tekstnøgle.
Selvtest
Kører sidemotoren igen mod de officielle GB/T 32905-2016 appendiks A-vektorer, GB/T 15852.2 (ISO/IEC 9797-2) HMAC-SM3-vektorerne, en trinvis kørsel i bidder på 1000 byte, begge eksempelpuljer, Base64-banen mod browserens egen kodning og negative stier (en misdannet hex-nøgle skal afvises). Intet sendes nogen steder hen.
Hvad er SM3?
I én sætning: SM3 er den kryptografiske hash fra det kinesiske standardiseringsorgan — en 256-bit Merkle–Damgård-hash i samme strukturelle familie som SHA-256, men med egne startværdier, rundekonstanter, boolske funktioner og en 68-ords meddelelsesudvidelse, offentliggjort som GM/T 0004-2012 og senere GB/T 32905-2016.
SM3 kontra SHA-256 i overblik
EgenskabSM3SHA-256
Digest- / blok- / ordstørrelse256 / 512 / 32 bit256 / 512 / 32 bit
Kompressionsrunder6464
MeddelelsesudvidelseW[0..67] + afledt W'[0..63], P1-permutationW[0..63] med σ0/σ1-rotationer
Rundekonstanterto konstanter T0..15=0x79CC4519, T16..63=0x7A879D8A, roteret med j64 konstanter K[0..63]
Boolske funktionerFF/GG-skifte ved runde 16Ch/Maj gennemgående
Bytes-rækkefølgebig-endianbig-endian
Offentliggjort2010 (GM/T 0004-2012; GB/T 32905-2016)2001 (FIPS 180-2)
Internationalt statusindeholdt i ISO/IEC 10118-3:2018FIPS 180-4

Samme skelet, anden muskulatur: begge algoritmer deler beskeden op i 512-bit blokke og kører 64 runder med blanding over otte 32-bit-registre, men hver konstant, hver rotationsmængde og meddelelsesudvidelsestrinnet er forskelligt, så de giver helt urelaterede digests for samme input. SM3("abc") er 66c7f0f4...8f4ba8e0, mens SHA-256("abc") er ba7816bf...f20015ad — prøv begge med Eksempel-knappen.

Betyder "nationalstandard" mere sikkert?

Nej — og det er ikke dens opgave. SM3 tilbyder sikkerhed, der kan sammenlignes med SHA-256: en 256-bit digest, ingen kendte praktiske kollisions- eller præimages-angreb. Grunden til, at SM3 findes, er pakke-uafhængighed og regulatorisk overensstemmelse: kinesiske regler for kommerciel kryptografi (商用密码, "SM") kræver den nationale pakke i certificerede sektorer — bank, stat, telekominfrastruktur — så hele stakken (hash, signatur, chiffer) styres af én national standardproces frem for udenlandske. Uden for den sammenhæng er SHA-256 og SM3 udskiftelige i styrke; vælg SM3, når modparten, regulatoren eller protokollen (fx TLS 1.3 med RFC 8998 SM-chifferpakkerne) kræver det.

Hvor SM3 placerer sig i SM-pakken
  • SM3 (denne side) — hashen. Også digest'en inde i SM2-signaturer (ZA-værdien) og KDF'en i SM2-kryptering.
  • SM4 — 128-bit blokchifferet (tænk "AES gjort national"), ECB/CBC på SM4-siden i denne familie.
  • SM2 — elliptisk-kurve-signatur- og krypteringsalgoritmen over kurven sm2p256v1, bygget på SM3.
  • SM9 — identitetsbaseret kryptografi: e-mailadressen er den offentlige nøgle.
Almindelige fejl
  • At hashe adgangskoder med SM3. SM3 er en hurtig hash til almindelige formål, ligesom SHA-256 — milliarder af gæt pr. sekund på en GPU. Til lagring af adgangskoder bruges bcrypt, scrypt, Argon2id eller PBKDF2 fra Password Hash Generator.
  • At antage, at den gamle C1C2C3-rækkefølge har betydning her. Ciphertext-rækkefølge er et SM2-emne; SM3 har ingen sådan finesse. Dens output er altid 32 byte.
  • At forveksle GM/T 0004-2012 og GB/T 32905-2016. Samme algoritme, samme testvektorer — GM/T er branchens standardudgivelse, GB/T den nationale. ISO/IEC 10118-3:2018 indeholder den også.
  • Stol, men verificér. Selvtesten på denne side gentager standardens egne appendiks-vektorer; siger den ikke "0 fejlede", så stol ikke på outputtet.
Ofte stillede spørgsmål

Findes SM3 i OpenSSL? Ja — OpenSSL 1.1.1 og senere: openssl dgst -sm3 file, HMAC via -hmac. GmSSL (den kinesiske gaffel) har haft det længere. Denne side kræver ingen af dem: algoritmen kører i browseren.

Hvad bruges HMAC-SM3 til? Meddelelsesautentificering: en digest, der også beviser, hvem der sendte den, fordi kun indehavere af den delte nøgle kan producere den. Standardiseret i GB/T 15852.2 / ISO/IEC 9797-2. Nøglen kan have enhver længde; over 64 byte hashes den først.

Hvorfor viser filbanen ikke SHA-256-sammenligningen? Sammenligningen bruger browserens indbyggede WebCrypto-digest i ét hug, som kræver hele input i hukommelsen — fint til tekst, ikke til en 200 MB-fil streamet i bidder. SM3 selv beregnes trinvis og har ingen sådan grænse her.

Kan jeg få digest'en som Base64? Ja — vælgeren Outputformat. Begge baner i hvert resultat kan kopieres eller downloades som en lille tekstrapport.