Generador de hash SM3

Calcule resúmenes SM3 — GB/T 32905-2016, el estándar nacional chino de hash criptográfico — de texto o archivos por completo en su navegador. SM3 plano o HMAC-SM3 con clave, con salida hexadecimal o Base64, y una columna comparativa SHA-256 al lado para contrastar. No se sube nada.
AlgoritmoResumen
SM3–
SHA-256 (columna de comparación, solo para origen de texto)–
Detalles–
Comprobación cruzada desde la línea de comandos — el resumen que imprime esta página para un archivo coincide byte a byte con openssl dgst -sm3 file.bin (OpenSSL 1.1.1+) y con gmssl dgst -sm3 file.bin. Para HMAC-SM3: openssl dgst -sm3 -hmac <clave> con una clave de texto.
Autocomprobación
Vuelve a ejecutar el motor de la página frente a los vectores oficiales del anexo A de GB/T 32905-2016, los vectores HMAC-SM3 de GB/T 15852.2 (ISO/IEC 9797-2), una ejecución incremental de 1000 bytes por bloques, ambos conjuntos de muestras, la columna Base64 frente al codificador nativo del navegador, y las rutas negativas (una clave hex mal formada debe rechazarse). Nada se envía a ninguna parte.
¿Qué es SM3?
En una frase: SM3 es el hash criptográfico del organismo nacional de normalización de China — un hash Merkle–Damgård de 256 bits de la misma familia estructural que SHA-256, pero con sus propios valores iniciales, constantes de ronda, funciones booleanas y una expansión de mensaje de 68 palabras, publicado como GM/T 0004-2012 y después como GB/T 32905-2016.
SM3 frente a SHA-256 de un vistazo
AspectoSM3SHA-256
Tamaño del resumen / bloque / palabra256 / 512 / 32 bits256 / 512 / 32 bits
Rondas de compresión6464
Expansión del mensajeW[0..67] + W'[0..63] derivado, permutación P1W[0..63] con rotaciones σ0/σ1
Constantes de rondados constantes T0..15=0x79CC4519, T16..63=0x7A879D8A, rotadas por j64 constantes K[0..63]
Funciones booleanascambio FF/GG en la ronda 16Ch/Maj en todas las rondas
Orden de bytesbig-endianbig-endian
Publicado2010 (GM/T 0004-2012; GB/T 32905-2016)2001 (FIPS 180-2)
Estado internacionalincluido en ISO/IEC 10118-3:2018FIPS 180-4

Mismo esqueleto, distinto músculo: ambos algoritmos dividen el mensaje en bloques de 512 bits y ejecutan 64 rondas de mezcla sobre ocho registros de 32 bits, pero cada constante, cada cantidad de rotación y el paso de expansión del mensaje son distintos, así que producen resúmenes totalmente no relacionados para la misma entrada. SM3("abc") es 66c7f0f4...8f4ba8e0 mientras que SHA-256("abc") es ba7816bf...f20015ad — pruebe ambos con el botón Ejemplo.

¿Significa «estándar nacional» más seguro?

No — y esa no es su función. SM3 ofrece una seguridad comparable a SHA-256: un resumen de 256 bits, sin ataques prácticos conocidos de colisión ni de preimagen. La razón de ser de SM3 es la independencia del conjunto y el cumplimiento normativo: la normativa china de criptografía comercial (商用密码, «SM») exige el conjunto nacional en sectores certificados — banca, administración, infraestructuras de telecomunicaciones — para que toda la pila (hash, firma, cifrado) la controle un proceso de normalización nacional y no extranjero. Fuera de ese contexto, SHA-256 y SM3 son intercambiables en fortaleza; elija SM3 cuando su contraparte, el regulador o el protocolo (por ejemplo, TLS 1.3 con los conjuntos de cifrado SM de la RFC 8998) lo pidan.

Dónde está SM3 dentro del conjunto SM
  • SM3 (esta página) — el hash. También es el resumen dentro de las firmas SM2 (el valor ZA) y el KDF del cifrado SM2.
  • SM4 — el cifrado de bloque de 128 bits (piense en «AES nacionalizado»), ECB/CBC en la página de SM4 de esta familia.
  • SM2 — el algoritmo de firma y cifrado de curva elíptica sobre la curva sm2p256v1, construido sobre SM3.
  • SM9 — criptografía basada en identidad: su dirección de correo es su clave pública.
Errores habituales
  • Hashear contraseñas con SM3. SM3 es un hash rápido de propósito general, como SHA-256 — miles de millones de intentos por segundo en una GPU. Para almacenar contraseñas use bcrypt, scrypt, Argon2id o PBKDF2 desde el Generador de hash de contraseñas.
  • Suponer que el antiguo orden C1C2C3 importa aquí. El orden del cifrado es un tema de SM2; SM3 no tiene esa complicación. Su salida siempre son 32 bytes.
  • Confundir GM/T 0004-2012 con GB/T 32905-2016. Mismo algoritmo, mismos vectores de prueba — GM/T es la publicación de estándar del sector, y GB/T la nacional. ISO/IEC 10118-3:2018 también la incluye.
  • Confíe, pero verifique. La autocomprobación de esta página repite los propios vectores del anexo del estándar; si no indica «0 fallidas», no se fíe de la salida.
Preguntas frecuentes

¿Está SM3 disponible en OpenSSL? Sí — OpenSSL 1.1.1 y posteriores: openssl dgst -sm3 file, y HMAC mediante -hmac. GmSSL (la bifurcación china) lo tiene desde hace más tiempo. Esta página no necesita ninguno de los dos: el algoritmo se ejecuta en su navegador.

¿Para qué sirve HMAC-SM3? Autenticación de mensajes: un resumen que además prueba quién lo envió, porque solo quienes poseen la clave compartida pueden producirlo. Estandarizado en GB/T 15852.2 / ISO/IEC 9797-2. La clave puede tener cualquier longitud; si supera los 64 bytes, primero se hashea.

¿Por qué la vía de archivos no muestra la comparación con SHA-256? La comparación usa el resumen de una sola pasada WebCrypto integrado en el navegador, que necesita toda la entrada en memoria — válido para texto, no para un archivo de 200 MB en bloques. SM3 en sí se calcula de forma incremental y aquí no tiene ese límite.

¿Puedo obtener el resumen en Base64? Sí — con el selector de Formato de salida. Las dos columnas de cada resultado se pueden copiar o descargar como un pequeño informe de texto.