hat.sh: criptografe arquivos no navegador sem precisar confiar em ninguém

· nologin.tools
tools review privacy encryption

Hero image

Todo serviço de armazenamento em nuvem, toda plataforma de compartilhamento de arquivos, toda ferramenta de upload que se diz “segura” tem uma coisa em comum: seus arquivos passam pelo computador de outra pessoa. Você está confiando na criptografia do provedor, na gestão das chaves deles, nos funcionários deles e nas obrigações legais deles com quem quer que solicite seus dados. É muita confiança para depositar em uma empresa que você nunca conheceu.

E se a criptografia acontecesse antes de o arquivo sair da sua máquina — no navegador, sem que nenhum servidor visse o texto em claro?

É exatamente isso que o hat.sh faz.

O que o hat.sh realmente faz

hat.sh é uma ferramenta de criptografia de arquivos baseada no navegador. Você arrasta um arquivo para a página, digita uma senha (ou fornece uma chave pública), e ele gera um arquivo .enc criptografado. Para descriptografar, arraste o .enc para a mesma página, digite a senha e o arquivo original está de volta. Tudo acontece localmente em JavaScript — sem requisições de rede com o conteúdo do arquivo, sem backend, sem banco de dados.

O esquema de criptografia é AES-256-GCM, o mesmo algoritmo usado pelo Signal, WhatsApp e pela maioria das conexões TLS modernas. É criptografia autenticada, o que significa que a descriptografia falha — de forma explícita — se o arquivo foi adulterado em algum momento. Não dá para corromper silenciosamente um arquivo criptografado e esperar que o hat.sh aceite.

hat.sh suporta dois modos:

  • Criptografia baseada em senha: você define uma senha e a ferramenta deriva uma chave de criptografia usando PBKDF2. Qualquer pessoa com a senha pode descriptografar.
  • Criptografia por chave pública: você gera um par de chaves, compartilha sua chave pública, e qualquer pessoa pode criptografar arquivos que só você consegue abrir com sua chave privada. Usa troca de chaves X25519 combinada com AES-256-GCM.

O modo de chave pública é especialmente útil para equipes. Um jornalista pode publicar sua chave pública; fontes podem usar o hat.sh para criptografar documentos antes de enviar, sem nenhuma configuração do lado de quem envia.

Sem login, sem upload, sem conta

A história de privacidade aqui é excepcionalmente limpa. O código-fonte está no GitHub sob licença MIT — você pode ler exatamente qual JavaScript está rodando no seu navegador. Sem telemetria, sem chamadas de analytics com os metadados dos seus arquivos, e sem componente no servidor para ser comprometido.

Compare com serviços típicos de compartilhamento “seguro” de arquivos:

RecursoServiço típico de upload criptografadohat.sh
Arquivos enviados ao servidorSimNão
Conta necessáriaFrequentementeNunca
Servidor vê o texto em claroDepende da implementaçãoNão
Código-fonte auditávelRaramenteSim (MIT)
Funciona offlineNãoSim (após o primeiro carregamento)

Ferramentas como o VirusTotal enviam seus arquivos para servidores externos por design — esse é o propósito delas. hat.sh é o oposto: o ponto é exatamente que o conteúdo dos seus arquivos não vai a lugar nenhum.

Quando você usaria o hat.sh

Imagine uma contadora autônoma que precisa enviar documentos fiscais a um cliente. E-mail é texto em claro. A maioria dos links de compartilhamento expira ou fica indexada. Ela quer algo simples: abrir uma página web, criptografar o arquivo com uma senha compartilhada, enviar o resultado.

Ou pense num desenvolvedor rotacionando credenciais num repositório. Ele precisa compartilhar um arquivo .env com um colega — só uma vez, com segurança. Não quer montar toda uma infraestrutura de chaves GPG para uma única transferência. Com o hat.sh, ele criptografa com uma senha descartável e manda o .enc pelo Slack, Discord ou e-mail. Sem a senha, o blob criptografado não vale nada.

Para pesquisadores de segurança, o modo de chave pública tem utilidade real. Você pode distribuir sua chave pública no seu site e deixar qualquer pessoa te enviar arquivos criptografados sem precisar instalar nada. Sem servidor de chaves PGP, sem cliente GPG, sem a complexidade da Web of Trust.

A honestidade técnica da criptografia no lado do cliente

A criptografia no lado do cliente tem uma limitação importante que vale reconhecer: se o próprio site for comprometido, um JavaScript malicioso poderia exfiltrar sua senha ou arquivo antes da criptografia. Essa é a tensão fundamental de qualquer ferramenta de criptografia baseada no navegador.

hat.sh lida com isso de algumas formas. Primeiro, o código aberto permite que qualquer pessoa audite o JavaScript. Segundo, você pode baixar o repositório e rodar o hat.sh localmente, em ambiente completamente isolado. Terceiro, para usuários com requisitos de segurança muito elevados, o projeto inclui um setup com Docker para self-hosting.

Para a maioria dos casos de uso — enviar documentos sensíveis a um colega, criptografar um backup antes de subir para a nuvem, proteger um arquivo de configuração — o modelo de ameaça não inclui uma CDN comprometida. A criptografia no navegador é uma melhoria substancial em relação a enviar arquivos sem proteção.

Se você quer entender como seu navegador lida com criptografia, a especificação da Web Crypto API documenta os primitivos que o hat.sh usa por baixo dos panos. É um recurso nativo do navegador, não uma implementação personalizada — as operações criptográficas acontecem em código C++ otimizado, não em JavaScript interpretado.

hat.sh comparado a ferramentas similares sem login

Talvez você já conheça o CyberChef, que também roda inteiramente no navegador e consegue lidar com criptografia AES. Mas o CyberChef é uma ferramenta de transformação de dados de uso geral — ele lida com encoding, compressão, hashing e centenas de outras operações além da criptografia. Essa amplitude o torna poderoso, mas também complexo para usuários não técnicos.

hat.sh foi construído para uma coisa só: criptografar arquivos para transporte ou armazenamento seguro. A interface é minimalista o suficiente para você passar a URL para alguém que não sabe o que é AES e ele descobrir como usar em menos de um minuto. A simplicidade é uma funcionalidade.

Wormhole resolve um problema relacionado — transferência de arquivos P2P com criptografia ponta a ponta —, mas exige que as duas partes estejam online ao mesmo tempo, e os arquivos passam por servidores de retransmissão. hat.sh gera um arquivo estático criptografado que você pode enviar por qualquer canal, de forma assíncrona.

Como começar

Usar o hat.sh pela primeira vez leva cerca de 30 segundos:

  1. Acesse hat.sh
  2. Arraste qualquer arquivo para a página (ou clique para procurar)
  3. Escolha o modo “Password” e insira uma senha forte
  4. Clique em Encrypt — você vai baixar um arquivo .enc
  5. Compartilhe o .enc pelo canal que preferir; envie a senha separadamente

Para descriptografar:

  1. Acesse hat.sh
  2. Arraste o arquivo .enc
  3. Digite a senha
  4. Seu arquivo original é baixado automaticamente

Todo o processo não exige conta, instalação nem confiança em terceiros. O arquivo criptografado são apenas bytes — você pode salvá-lo no Dropbox, enviar por e-mail ou publicar. Sem a senha, ele é opaco.


Ferramentas de privacidade costumam ter um custo: ou você tem segurança forte com complexidade dolorosa (GPG), ou tem facilidade de uso com os dados indo para os servidores de outra pessoa. hat.sh aposta em algo diferente — que um aplicativo web bem projetado, transparente e de código aberto pode te dar os dois. À medida que os navegadores ficam mais capazes e a Web Crypto API amadurece, espere ver mais ferramentas seguindo esse padrão: o servidor só entrega o código, e tudo que é sensível acontece na sua máquina.