Criptografia e descriptografia SM4
Criptografe e descriptografe textos com SM4, o padrão nacional chinês.
Você vai precisar dela de novo para descriptografar. Nada do que você digita sai desta página.
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.
A escolha usual com o OpenSSL. Precisa de um IV; faz padding até completar os blocos.
openssl enc -sm4-cbc -pbkdf2 -iter 10000 -a -AO 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
- Escolha Criptografar ou Descriptografar. Digite o texto a criptografar ou cole o texto em Base64 ou hex a descriptografar — o formato é detectado automaticamente.
- 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).
- 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.
- 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.