Toolonit
  1. Início
  2. Criptografia
  3. Criptografar / descriptografar
  4. SM4

Criptografia e descriptografia SM4

Criptografe e descriptografe textos com SM4, o padrão nacional chinês.

Criptografar com

Você vai precisar dela de novo para descriptografar. Nada do que você digita sai desta página.

Iterações de PBKDF2

O padrão do OpenSSL é 10.000. Qualquer número funciona: mais iterações deixam a senha mais lenta de adivinhar; para descriptografar, é preciso o mesmo número.

Modo

A escolha usual com o OpenSSL. Precisa de um IV; faz padding até completar os blocos.

Saída em
O mesmo no OpenSSL
openssl enc -sm4-cbc -pbkdf2 -iter 10000 -a -A

O OpenSSL pede a senha; cole o texto nele ou acrescente arquivos com -in e -out.

O SM4, antes chamado SMS4, é a cifra de bloco padrão nacional da China (GB/T 32907-2016), com chave de 128 bits e blocos de 16 bytes; desde 2021 também faz parte da norma ISO/IEC 18033-3. Sistemas que seguem as regras chinesas de criptografia comercial o usam onde outros usariam AES, por exemplo em sistemas bancários e governamentais. Criptografe e descriptografe textos com SM4 aqui no modo CBC por padrão, ou ECB, CTR, CFB ou OFB, com uma senha no formato do openssl enc -pbkdf2 ou sua própria chave e IV hex de 32 dígitos. O SM4 roda no seu navegador, então o texto e a chave nunca saem do seu dispositivo, e é grátis, sem cadastro.

Como criptografar e descriptografar textos com SM4

  1. Escolha Criptografar ou Descriptografar. Digite o texto a criptografar ou cole o texto em Base64 ou hex a descriptografar — o formato é detectado automaticamente.
  2. Digite uma senha (Gerar cria uma senha forte) ou mude para Chave e IV (hex) e digite ou gere uma chave de 32 dígitos e um IV de 32 dígitos (o ECB não tem IV).
  3. Escolha o modo — CBC, a menos que os dados tenham sido criados com outro. Ative Sem padding só se os dados foram criptografados sem padding PKCS#7.
  4. Copie ou baixe o resultado. Em O mesmo no OpenSSL, a página mostra o comando openssl que faz o mesmo, sem a sua senha.

Recursos

  • SM4 (GB/T 32907-2016) com sua chave de 128 bits
  • Modos CBC, ECB, CTR, CFB e OFB; padding PKCS#7 ou nenhum
  • Modo senha no formato do openssl enc -pbkdf2, legível pelo openssl enc -sm4-cbc
  • O comando openssl equivalente para todos os modos
  • Modo Chave e IV com chave e IV hex de 32 dígitos, digitados ou gerados
  • Base64 ou hex na entrada e na saída; copie, baixe ou use Trocar no resultado

É privado?

Sim. O SM4 roda em WebAssembly dentro do seu navegador, e a senha é transformada em chave pelo Web Crypto do navegador; seu texto, sua senha e sua chave nunca são enviados nem salvos.

Perguntas frequentes

O SM4 é seguro?

Sim. Não se conhece ataque prático contra o SM4 completo de 32 rodadas, e sua chave de 128 bits oferece mais ou menos a mesma segurança do AES-128. Como em qualquer cifra aqui, a senha é o ponto fraco — use uma longa e aleatória.

Dá para descriptografar com o OpenSSL?

Sim, com o OpenSSL 3: echo 'U2FsdGVkX1…' | openssl enc -d -sm4-cbc -pbkdf2 -iter 10000 -a -A (o OpenSSL então pede a senha). Use -sm4-ecb, -sm4-ctr, -sm4-cfb ou -sm4-ofb para os outros modos e -K <32 dígitos hex> -iv <32 dígitos hex> no lugar de -pbkdf2 -iter no modo Chave e IV. Se o seu openssl recusar sm4-cbc, ele foi compilado sem SM4.

Ele suporta SM4-GCM?

Não. O SM4 é oferecido em CBC, ECB, CTR, CFB e OFB, os modos que o openssl enc tem; nenhum deles detecta alterações no texto. O GCM está disponível na página do AES.

Ele também faz SM2 ou SM3?

Não. O SM2 é um algoritmo de chave pública e o SM3, uma função de hash; esta página faz apenas criptografia simétrica SM4. Para hashes, a ferramenta Gerador de hash oferece MD5 e a família SHA, não SM3.

Ferramentas relacionadas