Como funciona

Do arquivo bloqueado à senha recuperada

O ZipRecover roda inteiramente no seu navegador. Cada etapa abaixo mostra o que acontece com seu arquivo e por que ele nunca sai do seu dispositivo.

Como funciona a recuperação, passo a passo

1. Leitura local do arquivo

Você escolhe um ZIP no seu dispositivo. O navegador lê os bytes dele com a File API, nesta página, e nunca os envia a um servidor.

2. Detecção do formato

A página analisa a estrutura do ZIP (diretório central, cabeçalhos locais, campos extras), detecta ZipCrypto ou WinZip AES e o tamanho da chave, e separa uma entrada criptografada para os testes, de preferência a menor que seja grande o bastante para confirmar uma senha de forma decisiva (entre as entradas de até 256 MB comprimidos).

3. Confirmação de autorização

Antes de uma busca começar, você marca uma caixa confirmando que é o proprietário do arquivo ou que tem autorização para abri-lo. O botão Iniciar recuperação fica bloqueado até você marcar, e o botão Retomar também.

4. Teste das candidatas

Um Web Worker por núcleo da CPU testa a parte que lhe cabe das candidatas da estratégia que você escolheu. As verificações prévias rápidas rejeitam de imediato a maioria dos palpites errados.

5. O resultado

Uma candidata que passa na verificação rápida é confirmada antes de ser reportada sempre que o arquivo permite: o HMAC no AES, e a descriptografia mais o CRC-32 em uma entrada ZipCrypto de pelo menos 4 bytes armazenada ou comprimida com Deflate, que é quase todos os arquivos. Quando só dá para testar uma entrada ZipCrypto mais curta ou comprimida com outro método, o resultado avisa que a senha passou apenas em uma verificação rápida. Nos dois casos ela aparece somente na sua aba.

Diagrama de para onde vai seu arquivo: esta página lê seu arquivo ZIP no seu dispositivo, escolhe uma entrada criptografada e entrega essa entrada, não o arquivo, aos Web Workers, um por núcleo de CPU, que testam senhas candidatas; uma correspondência é confirmada com o arquivo quando a entrada permite e mostrada na sua aba. O arquivo e as senhas nunca são enviados; só um relatório de erro sem dados do arquivo pode chegar ao servidor do site.
Seu arquivo fica no seu dispositivo: os workers recebem uma entrada criptografada, não o arquivo, e só um relatório de erro pode sair.

Tudo roda no seu dispositivo

Muitas ferramentas de recuperação online pedem que você envie seu arquivo a um servidor que você não controla. O ZipRecover adota a abordagem oposta. O arquivo é aberto com a File API do navegador e analisado na própria página, e todo o teste de senhas acontece em Web Workers em segundo plano na sua própria máquina, com o cálculo pesado em WebAssembly (ou, na derivação de chave do AES, na Web Crypto nativa do navegador quando ela é mais rápida no seu dispositivo). Não há etapa de envio, então não existe cópia do seu arquivo na infraestrutura de ninguém.

Como uma senha é testada

Um arquivo ZIP não armazena sua senha. Ele armazena valores derivados dela, que é o que permite à ferramenta verificar um palpite sem nunca conhecer a original. A verificação exata depende do método de criptografia.

Arquivos WinZip AES

As entradas criptografadas com AES derivam uma chave da sua senha usando PBKDF2-HMAC-SHA1 com 1000 iterações e um sal aleatório armazenado no arquivo. Essa derivação produz a chave de criptografia, uma chave de autenticação e um valor de verificação da senha de 2 bytes. O ZipRecover deriva a chave para cada candidata e compara esses 2 bytes primeiro. Isso rejeita de forma econômica a imensa maioria dos palpites errados. Uma candidata que passa é então confirmada ao recalcular o código de autenticação HMAC-SHA1 de 10 bytes da entrada, que é uma verificação definitiva. Saiba mais na página de criptografia AES.

Arquivos ZipCrypto

O ZipCrypto tradicional usa um fluxo de chaves leve. Os primeiros 12 bytes de uma entrada são um cabeçalho de criptografia cujo byte final deve corresponder a um valor de verificação conhecido. O ZipRecover usa isso como filtro rápido, e então confirma uma candidata sobrevivente descriptografando a entrada, descomprimindo-a com o descompressor Deflate nativo do navegador e comparando o CRC-32 armazenado.

Essa confirmação funciona para entradas de pelo menos 4 bytes armazenadas (Store) ou comprimidas com Deflate, o que cobre quase todos os arquivos. Abaixo de 4 bytes o CRC-32 cobre texto claro de menos para barrar senhas erradas, então o resultado informa que a senha passou apenas por uma verificação rápida. O ZipRecover não consegue confirmar uma entrada ZipCrypto comprimida com outro método, como BZip2, LZMA ou Deflate64 (opções de ferramentas como o 7-Zip): nesses casos ele só compara o tamanho dos dados descriptografados com o tamanho registrado no arquivo, algo que dados comprimidos quase nunca igualam. Por isso, quando todas as entradas criptografadas de um arquivo ZipCrypto usam um desses métodos, a busca normalmente termina sem resultado, mesmo quando a senha certa é testada.

Como um sucesso é confirmado

Nos arquivos AES e nas entradas ZipCrypto de pelo menos 4 bytes armazenadas ou comprimidas com Deflate, que são quase todos os arquivos, uma senha reportada passou por uma confirmação completa depois do filtro rápido: o HMAC no AES e a descriptografia mais o CRC-32 no ZipCrypto. A exceção é um arquivo em que cada entrada protegida pequena o suficiente para verificar no navegador (256 MB comprimidos) é uma entrada ZipCrypto minúscula (menos de 4 bytes) ou que usa outro método de compressão: nesse caso, o resultado informa que a senha passou apenas por uma verificação rápida e pede que você abra o arquivo com ela para ter certeza.

As três estratégias

Você escolhe como as senhas candidatas são geradas:

  • Dicionário. Forneça uma lista de senhas prováveis. Variações opcionais (maiúsculas, dígitos ao final, leetspeak comum) são testadas automaticamente. Ideal quando você tem uma boa ideia da senha.
  • Padrão / máscara. Descreva o formato que você lembra usando marcadores: ?d dígito, ?l minúscula, ?u maiúscula, ?s símbolo, ?a qualquer um. Todo o resto é literal, por exemplo Fatura?d?d?d?d.
  • Força bruta. Testa todas as combinações de um conjunto de caracteres até um comprimento que você escolher. Prático apenas para senhas curtas, e muito mais lento em arquivos AES.

Por que a velocidade depende do arquivo

CriptografiaCusto por candidataUso realista
ZipCryptoMuito baixoDicionários, máscaras e buscas por força bruta curtas
WinZip AESAlto (PBKDF2 x1000)Dicionários e máscaras estritamente delimitadas

Como o AES desacelera deliberadamente a derivação da chave, o teste é ordens de grandeza mais lento que o ZipCrypto. Essa lentidão está embutida no formato, nenhuma ferramenta consegue removê-la, e é a razão pela qual uma senha AES aleatória e forte é, na prática, irrecuperável por tentativa e erro. O ZipRecover é mais eficaz quando você consegue restringir a busca com aquilo que lembra.

Apenas uso autorizado

Use esta ferramenta apenas em arquivos ZIP que você possui ou está autorizado a acessar. Tentar abrir arquivos sem permissão pode violar as leis aplicáveis. Consulte nossa Política de Uso Aceitável e os Termos de Uso.

Perguntas sobre o processo

O arquivo ZIP é enviado?

Não. O arquivo é lido localmente com a File API do navegador e analisado nesta página; só os bytes de uma entrada criptografada, com um resumo do arquivo (nomes e tamanhos das entradas), vão para os Web Workers que testam as senhas. Nenhuma requisição leva seu arquivo para fora do dispositivo. Consulte segurança e privacidade.

O que a ferramenta realmente testa?

Para WinZip AES, ela deriva uma chave com PBKDF2-HMAC-SHA1 e verifica o valor de verificação de 2 bytes do formato, e então confirma com o HMAC armazenado. Para ZipCrypto, ela verifica o cabeçalho de 12 bytes e então confirma descriptografando e comparando o CRC-32, o que funciona para entradas de pelo menos 4 bytes armazenadas ou comprimidas com Deflate (quase todos os arquivos). Quando só uma entrada mais curta pode ser testada, o resultado informa que a senha passou apenas por uma verificação rápida; quando a única entrada testável usa outro método de compressão, a ferramenta só pode comparar o comprimento descriptografado, no qual a senha certa normalmente também falha, então a busca normalmente termina sem resultado.

Por que o AES é muito mais lento que o ZipCrypto?

O WinZip AES executa PBKDF2 com 1000 iterações de HMAC-SHA1 por candidata de propósito, para encarecer a tentativa e erro. O ZipCrypto não tem esse alongamento, então muito mais candidatas podem ser testadas por segundo.

Posso pausar e continuar depois?

Sim. A recuperação roda em Web Workers, então a página continua respondendo enquanto você pausa ou retoma. Buscas por máscara e força bruta salvam o progresso neste dispositivo durante a execução, então, depois de recarregar a página ou fechar a aba, basta escolher o mesmo arquivo de novo para a ferramenta oferecer continuar de onde parou. Parar encerra a busca de vez e apaga o progresso salvo, e buscas por dicionário sempre recomeçam do início.

Pronto para recuperar sua senha de ZIP?

Tudo é executado localmente no seu navegador. Seu arquivo nunca sai do seu dispositivo.

Abrir a ferramenta