Skip to content

Ferramenta de criptografia e descriptografia DES / 3DES

Criptografia/descriptografia DES/3DES (2/3 chaves) com ECB/CBC e PKCS#7 no navegador. Comprimentos de chave (8/16/24 bytes) validados com rigor — sem truncagem silenciosa. Cada resultado com o comando OpenSSL equivalente.

Sem rastreamento Roda no navegador Grátis
A criptografia roda inteiramente no seu navegador — a chave e os dados que você digita nunca saem deste dispositivo.

Texto cifrado
Comando OpenSSL equivalente
—

O comando contém a chave que você digitou.

Vetor de teste DES do FIPS 81

Calculado em tempo de build pela engine que esta página executa — confira sua própria implementação de DES por ele.
Chave (DES simples) 0123456789abcdef
Texto claro 4e6f772069732074
Texto cifrado (ECB, sem padding) 3fa40e8a984d4815
A engine DES/3DES verifica o vetor FIPS 81 por asserção e foi conferida contra o OpenSSL 3 (des-ede / des-ede3, com o DES simples verificado pela equivalência K‖K‖K) em mais de 3.000 combinações aleatórias entre ECB e CBC; os comandos OpenSSL equivalentes foram executados em um shell real para comparação. Os padrões das bibliotecas foram confirmados executando-os e lendo o código-fonte; veja alternativas. — Equipe de Segurança Go Tools · Sep 28, 2026

Escrito e revisado pelos desenvolvedores que constroem as ferramentas de criptografia. Cada texto cifrado e contagem de bytes desta página é calculado pela engine da ferramenta e garantido por testes.

Respostas rápidas sobre DES

Tamanho da chave DES

8 / 16 / 24 bytes DES simples: 8 bytes (56 bits efetivos). 3DES: 16 bytes (2 chaves) ou 24 bytes (3 chaves). Material de chave nominal 112/168 bits; força de segurança efetiva do NIST cerca de 80/112 bits (SP 800-57). Esta ferramenta detecta automaticamente pelo número de bytes; outros tamanhos geram erro.

Vetor de teste FIPS 81

3fa40e8a984d4815 Chave 0123456789abcdef, texto claro "Now is t" (hex 4e6f772069732074): DES simples ECB sem padding gera 3fa40e8a984d4815.

Qual o tamanho do IV do DES

8 bytes 8 bytes (16 dígitos hex), só para CBC — o ECB não usa. Distinto do IV de 16 bytes do AES.

O que é o PKCS5Padding do Java

= PKCS#7 Para DES é o PKCS#7 — o mesmo algoritmo de padding com seu nome histórico (o PKCS#5 só definiu blocos de 8 bytes, que é o do DES).

O DES é seguro hoje

Só interop legado Não. DES simples aposentado em 2005; 3DES descontinuado no SP 800-131A Rev.2 (2023). Só interoperabilidade legada — use AES-256 para qualquer coisa nova.

O que são DES e 3DES (Data Encryption Standard)?

O DES (Data Encryption Standard) é a cifra de bloco simétrica adotada pelo órgão de padrões dos EUA em 1977, baseada no projeto Lucifer da IBM . Ele processa blocos de 64 bits (8 bytes) sob uma chave nominal de 64 bits com 56 bits efetivos, em 16 rodadas de uma estrutura de Feistel.

O 3DES (TDEA, Triple DES) encadeia o DES três vezes para compensar a chave curta: C = E_K3(D_K2(E_K1(P))). A passagem do meio é uma descriptografia, de modo que K1=K2=K3 colapsa a cadeia para DES simples — uma escolha deliberada de compatibilidade. A forma de 2 chaves (K3=K1) tem cerca de 112 bits efetivos e é a forma mais comum em sistemas bancários legados.

O NIST aposentou o DES simples em 2005 (aviso do FIPS 46-3) e descontinuou o 3DES no SP 800-131A Rev.2 (2023). A única razão de ainda existirem é a interoperabilidade legada: clearings bancários, gateways de pagamento e sistemas Java/.NET/PHP dos anos 90/2000 ainda rodam criptografia da era DES. Projetos novos devem usar AES-256.

# OpenSSL single DES (legacy provider)
openssl enc -des-ecb -provider legacy -provider default -K 0123456789abcdef -nopad

# 3-key 3DES CBC + PKCS#7 (default provider)
openssl enc -des-ede3-cbc -K <48 hex digits> -iv <16 hex digits> -base64 -A

O que esta ferramenta DES faz

Validação estrita dos três tamanhos de chave

8/16/24 bytes são detectados automaticamente como DES simples / 2 chaves / 3 chaves 3DES; qualquer outra coisa gera erro. Diferente do truncamento silencioso do CryptoJS ou do truncar-e-avisar do openssl enc -K, chaves erradas falham em voz alta — a principal fonte de divergências de interoperabilidade.

Vetor FIPS 81 calculado em tempo de build

A tabela de vetores de teste no fim é derivada pela mesma engine em tempo de build, então crawlers leem o valor de referência sem rodar JS e o número impresso nunca pode divergir do interativo.

Comando OpenSSL equivalente

Cada combinação de parâmetros corresponde a um comando openssl enc que reproduz o resultado no OpenSSL 3, incluindo as flags de legacy-provider do DES simples. Envie ao outro lado para fixar a divergência de parâmetros.

Suporte a texto claro GBK

O getBytes() do Java da era DES em um JDK chinês para Windows produz GBK. Ambos os sentidos aqui aceitam GBK, então texto claro chinês de sistemas antigos não precisa de conversão prévia.

Totalmente no navegador

TypeScript puro, zero dependências, zero requisições de rede. Chaves e texto claro nunca saem do dispositivo; funciona offline depois de carregado. A única forma aceitável para uma ferramenta que manipula chaves.

Padrões de bibliotecas DES por linguagem

Java (JCE)

"DES" usa ECB + PKCS5Padding por padrão

Cipher.getInstance("DES") equivale a DES/ECB/PKCS5Padding; "DESede" é 3DES mas aceita apenas chaves de 24 bytes — expanda K1‖K2 para K1‖K2‖K1 por conta própria para 2 chaves. PKCS5Padding é PKCS#7 para DES. Sem IV: a criptografia escolhe um aleatório (recupere via getIV()), a descriptografia gera "Parameters missing".

PHP (openssl_encrypt)

des-ede3-cbc / des-ede-cbc

Os nomes de algoritmo seguem o OpenSSL: des-ede3 é ECB triplo, des-ede3-cbc é CBC. $options=0 (padrão) gera texto Base64; OPENSSL_RAW_DATA para bytes brutos. Chaves curtas são completadas com zeros silenciosamente; um IV vazio avisa e depois criptografa com IV zero.

OpenSSL 3 (openssl enc)

-des-ede3-cbc funciona por padrão

DES simples precisa de -provider legacy -provider default (alguns builds omitem o legacy por completo). -K/-iv recebem hex; PKCS#7 por padrão, -nopad para desativar. -K trunca chaves longas demais com um aviso.

CryptoJS

Trunca silenciosamente tamanhos de chave ilegais

Uma chave bruta de 8 bytes (WordArray) funciona; tamanhos errados são completados com zeros ou truncados silenciosamente (4 bytes completados, 10 truncados — sem erro). Uma string como "chave" roda derivação de chave (MD5 + salt aleatório, saída prefixada com Salted__, diferente a cada vez). CBC sem IV é um crash de TypeError, não um IV zero. TripleDES com chave de 8 bytes vira silenciosamente DES simples.

.NET

TripleDES usa CBC + PKCS7 por padrão

TripleDESCryptoServiceProvider: Mode=CBC, Padding=PKCS7, Key de 16 ou 24 bytes (DES aceita 8). O .NET rejeita chaves fracas (a paridade é normalizada primeiro, depois consultada na tabela de chaves fracas — chave nula lança exceção) enquanto toda outra biblioteca as aceita. Fique atento ao migrar.

Go (crypto/des)

Fiação explícita do modo

des.NewCipher dá a interface de bloco bruta para chave de 8 bytes; você mesmo envolve em cipher.NewCBCEncrypter etc. O 3DES é des.NewTripleDESCipher (24 bytes). O tamanho do IV é verificado de forma mais estrita que na maioria das linguagens.

Exemplos de criptografia DES

Vetor de teste FIPS 81 (DES simples, ECB, sem padding)

Chave 0123456789abcdef, texto claro (hex) 4e6f772069732074
3fa40e8a984d4815

O texto claro é a string ASCII "Now is t". Este é o clássico vetor do FIPS 81, e a tabela no fim da página é calculada em tempo de build pela mesma engine — se a sua implementação de DES não produzir esse valor para essas entradas, ela tem um bug.

3DES de 2 chaves + CBC + PKCS#7: texto claro UTF-8 para Base64

Chave 0123456789abcdeffedcba9876543210 (16 bytes), IV fedcba9876543210, texto claro: DES interop test: order 20260927-0042
QmnMoewSecp7Z7cr/w3/4AjM9lpFo1swc4dfLNH5UkgCwU5n7WIdKA==

Uma chave de 16 bytes é tratada como 3DES de 2 chaves (K1 = primeiros 8 bytes, K2 = últimos 8, K3 = K1 — a montagem EDE2). PKCS#7 sobre um bloco de 8 bytes é exatamente o que o Java chama de "PKCS5Padding" para DES: mesmo esquema, só muda o tamanho do bloco.

3DES de 3 chaves + CBC + PKCS#7

Chave 0123456789abcdef23456789abcdef010456789abcdef012 (24 bytes), IV fedcba9876543210, texto claro: hello des
DhDQX9sfxKOirZ8eyqT7Jg==

Uma chave de 24 bytes é a montagem completa de três chaves EDE3: C = E_K3(D_K2(E_K1(P))). Dos três tamanhos de chave, esta é a única forma sem equivalente degenerado — tanto 2 chaves quanto K1=K2=K3 colapsam para cifras mais fracas.

Como usar esta ferramenta de criptografia e descriptografia DES

  1. 1

    Escolha modo e padding

    Para o DES/ECB/PKCS5Padding do Java escolha ECB + PKCS#7; para openssl enc -des-ede3-cbc escolha CBC + PKCS#7. Código antigo em PHP mcrypt normalmente usa Zero padding.

  2. 2

    Digite a chave (8/16/24 bytes)

    O número de bytes seleciona a cifra: 8 = DES simples, 16 = 3DES de 2 chaves, 24 = 3DES de 3 chaves. Escolha Hex, Texto ou Base64; o selo mostra o número real de bytes e a forma detectada. Tamanhos errados geram erro — nada é truncado.

  3. 3

    Para CBC, digite o IV de 8 bytes

    O ECB não precisa de IV. O IV deve ter exatamente 8 bytes — 16 dígitos hex, não os 32 do AES. O botão Aleatório gera um novo.

  4. 4

    Cole e obtenha resultados ao vivo

    Criptografando: digite texto (UTF-8/GBK) ou hex. Descriptografando: cole texto cifrado em Base64 ou hex. Os resultados se atualizam enquanto você digita, com cópia em um clique e verificação de ida e volta pelo botão Descriptografar este texto cifrado.

  5. 5

    Leve o comando OpenSSL equivalente para o outro lado

    O painel retrátil fornece um comando openssl enc que reproduz o resultado atual (chave inclusa; comandos de DES simples levam -provider legacy -provider default). Envie a quem você estiver interoperando — o jeito mais rápido de resolver de quem é o parâmetro errado.

Por que a descriptografia DES falha

Tamanho da chave não é 8/16/24

Uma "chave DES" de 32 caracteres hex tem 16 bytes — isso é 3DES de 2 chaves, não DES simples. Ao contrário, alimentar uma chave de 24 bytes a um sistema que só aceita 2 chaves também falha.

✗ Incorreto
Chave 0123456789abcdeffedcba9876543210 (16 bytes) com DES simples selecionado → erro "a chave deve ter exatamente 8 bytes"
✓ Correto
A mesma chave como 16 bytes (3DES de 2 chaves) → descriptografa limpo

Confusão entre os nomes PKCS5 e PKCS7

O Java escreve "PKCS5Padding" para DES mas executa o algoritmo PKCS#7 (o PKCS#5 só definiu padding para blocos de 8 bytes, que coincide com o do DES, então o nome colou). Escolher None ou Zero contra um texto cifrado do JCE sempre falha.

✗ Incorreto
Texto cifrado JCE `DES/ECB/PKCS5Padding` descriptografado como "sem padding" → lixo no final ou erro de padding
✓ Correto
Selecionar PKCS#7 (Java PKCS5Padding) → saída limpa

Copiar o tamanho de IV do AES (16 bytes)

O bloco do DES tem 8 bytes, então o IV dele também tem 8. Colar um IV de 32 dígitos hex de código AES falha na checagem de tamanho; um IV de 8 dígitos hex é completado com zeros e lido errado.

✗ Incorreto
IV 00000000000000000000000000000000 (32 dígitos hex) → erro "o IV deve ter 8 bytes"
✓ Correto
IV 0000000000000000 (16 dígitos hex) → aceito

IV de CBC errado: só o primeiro bloco de 8 bytes vira lixo

Descriptografar texto cifrado de múltiplos blocos com IV errado não gera erro — só o primeiro bloco de 8 bytes vira lixo, o resto descriptografa bem (o IV só alcança o primeiro bloco, e a checagem de padding fica no último). Ao ver "os primeiros caracteres embaralhados, o resto certo", verifique o IV antes da chave; texto cifrado de um único bloco quebra o padding e gera bad decrypt.

✗ Incorreto
Texto cifrado de múltiplos blocos + IV errado → primeiros 8 bytes embaralhados, resto normal — lido como "chave errada"
✓ Correto
Mudar apenas o IV (chave intocada) → primeiro bloco recupera, confirmando que o IV era o problema

openssl enc -K trunca chaves longas silenciosamente

-K mantém só os bytes de que precisa e imprime um aviso de uma linha que scripts engolem. Quando o outro lado diz "a chave são esses 48 dígitos hex" mas na verdade criptografou com os primeiros 16, descriptografar com a chave inteira falha.

✗ Incorreto
Shell: `-K <49 dígitos hex>` → "hex string is too long, ignoring excess" se perde no pipeline
✓ Correto
Use o comando equivalente desta ferramenta para gerar um `-K` de tamanho correto, depois compare os bytes da chave com o outro lado

DES simples falha no OpenSSL 3 com "unsupported"

O provider padrão do OpenSSL 3 não tem des-ecb/des-cbc; rodar direto gera digital envelope routines::unsupported. Adicione -provider legacy -provider default, ou use des-ede3 com K‖K‖K (algebraicamente DES simples).

✗ Incorreto
openssl enc -des-ecb -K … → Erro: unsupported
✓ Correto
openssl enc -des-ecb -provider legacy -provider default -K … (ou des-ede3-ecb -K <K‖K‖K>)

Quando você precisa de criptografia DES online

Depurar a criptografia de mensagens de sistemas legados
Clearings bancários, cálculo de MAC de gateways POS e interfaces de ERP antigas ainda rodam DES/3DES. Cole a mensagem e a chave aqui para verificar "a chave está certa, qual modo, qual padding" sem montar um ambiente Java ou PHP.
Migrar código legado Java / PHP / .NET
Compare a saída de Cipher.getInstance("DES/ECB/PKCS5Padding") ou openssl_encrypt(..., 'des-ede3-cbc', ...) com esta ferramenta byte a byte antes de trocar. As formas de 2/3 chaves são detectadas pelo tamanho da chave, não há nada para adivinhar.
Auditorias de segurança e ensino
Demonstrar o vazamento de padrões do ECB (blocos iguais de texto claro → blocos iguais de texto cifrado), verificar a degeneração do 3DES (K1=K2=K3 colapsa para DES simples) e conferir o vetor FIPS 81 — item padrão em relatórios de pentest e cursos de criptografia.
Gerar textos cifrados de exemplo para documentação
Quando uma wiki interna ou documentação de API precisa de um exemplo reproduzível, calcule-o aqui com chave e IV fixos — leitores podem verificar com o comando OpenSSL equivalente, e nenhum dado de produção circula.

DES / 3DES e modos de cifra de bloco explicados

Bloco e chave
O DES processa blocos de 64 bits em 16 rodadas de Feistel, cada uma com uma subchave de 48 bits derivada da chave mestre de 56 bits por permutas de compressão PC-1/PC-2 e rotações escalonadas. As oito S-boxes são a única fonte de não-linearidade; seus critérios de projeto nunca foram totalmente publicados.
A montagem EDE do 3DES
C = E_K3(D_K2(E_K1(P))). A descriptografia do meio faz K1=K2=K3 colapsar para DES simples — um objetivo de retrocompatibilidade. A forma de 2 chaves tem 2×56=112 bits de material de chave nominal, mas uma força de segurança efetiva de cerca de 80 bits segundo o NIST (SP 800-57 Part 1); a de 3 chaves é nominalmente de 168 bits com força de 112 (descontinuada).
ECB e CBC
O ECB criptografa blocos de forma independente — blocos iguais de texto claro produzem blocos iguais de texto cifrado, um vazamento de padrão visível que blocos de 8 bytes tornam pior que o AES-ECB. O CBC mistura o bloco anterior de texto cifrado (o IV no primeiro) no texto claro antes de criptografar, e era a escolha mainstream para bancos da era DES. Ambos os modos produzem texto cifrado múltiplo de 8 bytes.
Padding: PKCS#7 / Zero / None
O PKCS#7 acrescenta n bytes de valor n ao que falta (faltando 3 → 03 03 03) e completa um bloco cheio com um bloco extra inteiro — é o "PKCS5Padding" do Java para DES. O Zero padding preenche com 0x00 e é destrutivo quando o texto claro realmente termina em 0x00. O None exige múltiplo exato de 8.
O legacy provider do OpenSSL 3
O OpenSSL 3 moveu o DES simples para um legacy provider desligado por padrão: a CLI precisa de -provider legacy -provider default, e alguns builds (incluindo o OpenSSL embutido no Node) omitem-no por completo. O 3DES (des-ede/des-ede3) fica no provider padrão. A engine em TypeScript puro desta ferramenta não é afetada.

Usando DES corretamente (interop legado)

Nunca use DES em sistemas novos, em nenhuma forma
Os 56 bits do DES simples são quebráveis por força bruta; o bloco de 64 bits carrega o limite de aniversário Sweet32 (CVE-2016-2183), e o NIST limita um conjunto de chaves a ≈8 MB (2²⁰ blocos) de texto claro; 2 chaves é Disallowed, 3 chaves após 2023. Use AES-256 para qualquer coisa nova. Esta ferramenta existe para ler e migrar sistemas legados com segurança.
Na interoperabilidade legada, byte-idêntico primeiro
Ao tocar um sistema antigo, primeiro reproduza aqui o texto cifrado dos parâmetros antigos byte a byte, depois mude o código. Confirme tamanho de chave, modo, padding e origem do IV (fixo vs aleatório, header vs fora de banda) antes de trocar de algoritmo.
Não reutilize IVs, nem em sistemas legados
Reutilizar um IV de CBC com a mesma chave expõe a relação entre os primeiros blocos de dois textos claros. Se um protocolo legado impõe um IV fixo, registre-o como defeito na lista de migração — não o herde como convenção.
Mantenha chaves fora do código-fonte
Sistemas da era DES rotineiramente embutem chaves em texto claro no código-fonte ou na configuração. Ao auditar um, coloque "como a chave é armazenada" ao lado de "qual algoritmo" no relatório — na maioria das violações o primeiro era a falha real.

FAQ de criptografar/descriptografar DES

A descriptografia DES falha com "bad decrypt" ou erro de padding — o que eu verifico?
A descriptografia exige que cada parâmetro seja igual ao lado que criptografou: os bytes da chave, o tamanho da chave (8/16/24), o modo (ECB/CBC), o IV, o padding e se o texto cifrado está em hex ou Base64. As duas armadilhas mais comuns: tamanho de chave diferente (uma "chave DES" de 32 caracteres hex é 16 bytes — isso é 3DES de 2 chaves, não DES simples) e confusão de nome de padding (o PKCS5Padding do Java É PKCS#7 para DES — não escolha None). O painel retrátil à direita mostra um comando OpenSSL equivalente para as configurações atuais; enviá-lo para o outro lado é o jeito mais rápido de encontrar a divergência.
Qual é o tamanho de uma chave DES? E do 3DES?
DES simples: 64 bits nominais (8 bytes, 56 efetivos — um bit por byte é de paridade). O 3DES vem em duas formas: 2 chaves (16 bytes, K1‖K2 com K3=K1) e 3 chaves (24 bytes, K1‖K2‖K3). O material de chave nominal é de 112/168 bits, mas a força de segurança efetiva segundo o NIST (SP 800-57 Part 1 Rev.5, tabela 2) é de cerca de 80 e 112 bits — e a forma de 3 chaves também está descontinuada. Esta ferramenta identifica a forma pelo número de bytes; qualquer coisa que não seja 8/16/24 gera erro — CryptoJS e openssl enc -K truncam silenciosamente ou completam com zeros, que é a principal causa de falhas de interoperabilidade.
O que é o IV e qual seu tamanho no DES?
O IV é o valor de 8 bytes que o CBC mistura no primeiro bloco; o ECB não usa um. Ele deve ter exatamente 8 bytes (16 dígitos hex ou 8 caracteres ASCII). Note que o IV do DES tem 8 bytes enquanto o do AES tem 16 — copiar um tamanho de IV do AES falha imediatamente. Nunca reutilize um IV com a mesma chave.
A que corresponde o DES/ECB/PKCS5Padding do Java nesta ferramenta?
Modo ECB + padding PKCS#7. No JCE, "PKCS5Padding" para DES executa o algoritmo genérico PKCS#7 — o PKCS#5 só definiu padding para blocos de 8 bytes, que é justamente o do DES. A saída de Java Cipher.getInstance("DES/ECB/PKCS5Padding") é descriptografada aqui com ECB + PKCS#7 e uma chave DES simples de 8 bytes. ⚠️ O 3DES do Java (DESede) aceita apenas chaves de 24 bytes — para a forma de 2 chaves você mesmo deve expandir K1‖K2 para K1‖K2‖K1.
Como mapeiam os nomes de algoritmo des-ede3 do PHP?
O PHP empresta os nomes do OpenSSL: des-ede3-cbc é 3DES de 3 chaves + CBC, des-ede3-ecb é 3 chaves + ECB; des-ede-cbc é a forma de 2 chaves. Uma chave de 24 bytes seleciona 3 chaves, 16 bytes selecionam 2 chaves.
Quais são os bits de paridade em uma chave DES? Eles são verificados?
O bit menos significativo de cada byte da chave é definido como bit de paridade, então a chave verdadeira de 56 bits fica dentro de 64 bits. O FIPS 46-3 não exige verificação — OpenSSL, Java e esta ferramenta todos ignoram; quaisquer 8 bytes funcionam, e mudar os bits de paridade não muda o texto cifrado. O .NET é a exceção: ele normaliza a paridade primeiro e depois consulta uma tabela de chaves fracas, então chave nula e outras chaves fracas são rejeitadas pelo .NET enquanto toda outra biblioteca criptografa feliz — uma armadilha que só dispara ao migrar chaves de teste de Java/OpenSSL para .NET.
O que acontece no 3DES quando K1 = K2?
No 3DES de 2 chaves, K3 é sempre igual a K1; se K1 = K2 também, toda a cadeia EDE colapsa para DES simples: E_K(D_K(E_K(P))) = E_K(P). O mesmo acontece quando os três componentes de 8 bytes de uma chave de 24 bytes são idênticos. Esta ferramenta ainda criptografa (interop primeiro), mas a força real passa a ser a do DES simples, 56 bits, não a do 3DES.
O DES ainda é seguro?
Não — serve apenas para interoperabilidade legada. O NIST retirou o DES simples em 19/05/2005 (chaves de 56 bits são quebráveis por força bruta; o Deep Crack da EFF fez isso em 56 horas em 1998, 22 horas no ano seguinte com distributed.net). O SP 800-131A Rev.2 classifica a criptografia TDEA de 2 chaves como Disallowed e a de 3 chaves como Disallowed após 31/12/2023 (a descriptografia permanece "Legacy use", mantida só para ler dados históricos); o próprio SP 800-67 foi retirado em 01/01/2024. O bloco pequeno de 64 bits também carrega o limite de aniversário da classe Sweet32 (CVE-2016-2183) — o NIST limita um único conjunto de chaves a 2²⁰ blocos (≈8 MB) de texto claro. Use AES-256 para qualquer coisa nova. Esta ferramenta existe porque clearings bancários, gateways de pagamento e sistemas antigos Java/.NET ainda rodam mensagens da era DES — corrigi-los começa por conseguir lê-los.
Por que meu resultado 3DES difere do Java/PHP?
Verifique em ordem de taxa de acerto: ① tamanho da chave — a "chave DES de 32 hex" do outro lado tem 16 bytes (3DES de 2 chaves), você descriptografou como DES simples; ② modo — o "DES" puro do Java usa ECB por padrão, os nomes do OpenSSL sem sufixo de modo, des-ede3/des-ede, são ECB (o alias de CBC é -des3); o openssl_encrypt do PHP exige o nome do algoritmo explícito — o que confunde é que por padrão ele gera texto Base64, não bytes brutos; ③ padding — o mcrypt antigo do PHP costumava usar Zero padding, o JCE usa PKCS#5/#7; ④ codificação — hex vs Base64, e maiúsculas/minúsculas; ⑤ a armadilha da senha do CryptoJS — passar uma string como "chave" faz rodar derivação de chave (MD5 + salt aleatório, saída prefixada Salted__, diferente a cada vez), que não é a chave bruta — a principal causa de "mesmo código, resultado diferente a cada execução". Esta ferramenta deixa você alternar cada item; o comando OpenSSL equivalente à direita pode ser enviado ao outro lado para reproduzir.
ECB ou CBC — qual usar?
O que o sistema com quem você conversa exigir — interoperabilidade legada não tem voto. Se você puder escolher, sempre CBC com IV aleatório: o ECB criptografa blocos iguais de texto claro em blocos iguais de texto cifrado, e os blocos pequenos de 8 bytes do DES vazam padrões de forma ainda mais visível que o AES-ECB. Protocolos bancários da era DES usam os dois; consulte antes o documento do protocolo.
Funciona offline? Meus dados são enviados?
Todo o cálculo acontece no seu navegador (TypeScript puro, zero dependências, zero requisições de rede); chaves e texto claro nunca saem do dispositivo. Depois que a página carrega, você pode ficar offline e continuar trabalhando. Essa é a única forma aceitável para uma ferramenta que manipula chaves.
3DES de 2 ou 3 chaves — qual é mais comum em sistemas legados?
2 chaves (16 bytes) é mais comum: bancos e a indústria de pagamento implantaram hardware com chave de 16 bytes por compatibilidade, e o SP 800-67 manteve para ele uma data de descontinuação separada (mais cedo). Então uma "chave 3DES" de 32 caracteres hex provavelmente é a forma de 2 chaves. Esta ferramenta detecta a forma pelo número de bytes automaticamente.

Ferramentas relacionadas

Ver todas as ferramentas →

Ferramenta de Descriptografia AES — OpenSSL e CryptoJS

Ferramentas de Segurança

Descriptografe AES online — GCM/CBC/CTR, frase-senha ou chave bruta, detecta automaticamente o formato "U2FsdGVkX1" do OpenSSL e CryptoJS. 100% no navegador, as chaves nunca saem da página.

Ferramenta de Criptografia AES — GCM, CBC e CTR

Ferramentas de Segurança

Criptografia AES online e gratuita — AES-128/192/256, GCM/CBC/CTR, frase-senha (PBKDF2) ou chave bruta. Roda 100% no navegador; nada é enviado a um servidor.

Gerador e Verificador de Hash Bcrypt

Ferramentas de Segurança

Gere e verifique hashes bcrypt de senha online — custo ajustável, prefixos $2b$/$2a$/$2y$. 100% no seu navegador; sua senha nunca é enviada.

Calculadora de soma de verificação CRC

Ferramentas de Segurança

Cole hex ou texto e veja de uma vez as 63 variantes de CRC-8, CRC-16 e CRC-32. Checksum que não bate? Digite o valor e a ferramenta diz qual é a variante — MODBUS, CCITT-FALSE, XMODEM, KERMIT. Tudo roda no seu navegador.

Gerador de HMAC e Verificador de Assinatura

Ferramentas de Segurança

Gerador e verificador de HMAC online e gratuito. Calcule HMAC-SHA256/SHA1/SHA384/SHA512 com chaves em Texto, Hex ou Base64 e saída Hex/Base64/Base64URL. 100% no seu navegador — as chaves nunca saem da página.

Decodificador JWT

Ferramentas de Segurança

Decodifique tokens JWT online com nosso decodificador JWT grátis. Inspecione cabeçalho, carga útil, assinatura, expiração e reivindicações. 100% navegador — seu token nunca sai do dispositivo. Sem cadastro, sem rastreio.