Criptografia e descriptografia Blowfish
Criptografe ou descriptografe com Blowfish (chaves de 4 a 56 bytes) em CBC, CFB, OFB ou ECB. Formato de senha bf-cbc do OpenSSL ou chave e IV em hex. Grátis, no navegador.
A saída usa o formato "Salted__" do OpenSSL em Base64: um salt aleatório de 8 bytes seguido do texto cifrado. A chave e o IV são derivados da senha e do salt, então o mesmo texto gera um resultado diferente a cada vez. Comando equivalente:
openssl enc -bf-cbc -md md5 -a -A -provider legacy -provider default -k '…'Executa totalmente no seu navegador. Seus dados nunca são enviados.
O que é Criptografar e descriptografar Blowfish?
Criptografa e descriptografa dados com Blowfish, a cifra de bloco de Bruce Schneier de 1993, com bloco de 64 bits e chave de tamanho variável (4 a 56 bytes). Use as abas Criptografar / Descriptografar para trocar a direção, assim você também pode descriptografar a sua própria saída ou dados do bf-cbc do OpenSSL.
Como usar Criptografar e descriptografar Blowfish
- Escolha a aba Criptografar ou Descriptografar.
- Selecione Senha (compatível com OpenSSL) e digite uma senha, ou Chave + IV brutos (hex) com uma chave de 4 a 56 bytes e um IV de 8 bytes.
- Escolha o Modo e o Preenchimento (CBC + PKCS#7 corresponde ao bf-cbc do OpenSSL).
- Informe o texto puro ou o texto cifrado, clique no botão e copie o resultado.
Exemplo
Raw key 0000000000000000, mode ECB, padding None, hex plaintext 0000000000000000
4ef997456198dd78
Primeiro vetor de teste do Blowfish de Schneier, saída em Hex.
Quando usar Criptografar e descriptografar Blowfish
Use-a para ler ou produzir dados para softwares legados que usam Blowfish, ou para gerar vetores de teste. O bloco de 64 bits o torna inadequado para grandes volumes de dados (Sweet32). Para trabalhos novos, use AES. Observe que hashes de senha bcrypt são baseados no Blowfish, mas não são dados criptografados – não podem ser descriptografados aqui.
Como funciona Criptografar e descriptografar Blowfish
O Blowfish expande a chave em 18 entradas do P-array e quatro S-boxes de 256 entradas, e depois executa 16 rodadas Feistel em cada bloco de 8 bytes. Chaves de qualquer tamanho entre 4 e 56 bytes percorrem o P-array byte a byte de forma cíclica, como na implementação de referência (verificado com os vetores de teste de chave variável de Eric Young). O modo senha deriva uma chave de 16 bytes e um IV de 8 bytes da senha e de um salt aleatório (EVP_BytesToKey MD5 ou PBKDF2-SHA256) e grava o formato Salted__ do OpenSSL, compatível com openssl enc -bf-cbc. CBC/ECB usam preenchimento PKCS#7, que é verificado na descriptografia.
Casos de Uso Comuns
- Descriptografar a saída de
openssl enc -bf-cbc - Criar vetores de teste Blowfish com chaves de tamanho incomum
- Interoperar com código legado de PHP mcrypt ou Blowfish em Java
- Ensinar cifras Feistel com um algoritmo clássico
Nota de Segurança
O Blowfish não está quebrado, mas o bloco de 64 bits é vulnerável a ataques de aniversário depois de alguns gigabytes com a mesma chave. Prefira AES para dados novos.
Perguntas Frequentes
Posso descriptografar nesta página?
Sim – clique na aba Descriptografar, informe a mesma senha ou chave/IV e as mesmas configurações e cole o texto cifrado.
Ela descriptografa um hash bcrypt?
Não. O bcrypt é um hash de senha de mão única que só usa o Blowfish internamente; ele não pode ser descriptografado, apenas verificado.
A saída é compatível com o OpenSSL?
Sim. No modo senha, o resultado é exatamente o que openssl enc -bf-cbc -md md5 -a -A -k <passphrase> produz (EVP_BytesToKey com MD5), ou -pbkdf2 -iter N quando você escolhe PBKDF2-HMAC-SHA256. Acrescente -d para descriptografar. A página mostra o comando correspondente abaixo do campo de senha.
Quais tamanhos de chave são permitidos?
De 4 a 56 bytes (8 a 112 caracteres hex). O modo senha sempre deriva uma chave de 128 bits, como o OpenSSL.