Argon2 Gerador de Hash
Ferramenta gratuita de Argon2 Gerador de Hash online. Processamento 100% local — seus dados nunca saem do seu dispositivo.
Verify: input format is "password|hash"
O resultado será exibido aqui...
Entrada → Calcular Hash
Usage Guide
Sobre o Argon2
Argon2 é o vencedor do Password Hashing Competition de 2015, projetado pela Universidade de Luxemburgo. É atualmente o algoritmo de hash de senhas mais seguro, recomendado por organizações autoritativas como OWASP e NIST para armazenamento de senhas. O Argon2 possui três variantes: Argon2d (resistente a GPU), Argon2i (resistente a canal lateral) e Argon2id (modo híbrido, recomendado). Ao contrário dos algoritmos de hash tradicionais, o Argon2 tem custo computacional e consumo de memória ajustáveis, resistindo efetivamente a ataques de força bruta, GPU e ASIC.
Passos de Uso
O Argon2 suporta duas operações: hash de senha e verificação:
Características do Algoritmo
O Argon2 é especificamente projetado para armazenamento de senhas com as seguintes vantagens únicas:
Comparação das Três Variantes
O Argon2 possui três variantes adequadas para diferentes cenários:
FAQ
Q: Qual é a diferença entre Argon2 e bcrypt/PBKDF2?
A: Argon2: Algoritmo moderno (2015), memória intensiva, resistente a GPU/ASIC, preferido pelo OWASP. bcrypt: Algoritmo clássico (1999), computacionalmente intensivo, resistência moderada a GPU, amplamente usado mas gradualmente sendo substituído pelo Argon2. PBKDF2: Algoritmo padrão (2000), computacionalmente intensivo, vulnerável a ataques de GPU, requer iterações extremamente altas (≥ 600k) para segurança. Comparação de desempenho: No mesmo nível de segurança, o Argon2 é 2-3x mais rápido que o bcrypt e 10x+ mais rápido que o PBKDF2. Recomendação: Use Argon2id para novos projetos, migre gradualmente projetos existentes para Argon2.
Q: Como os parâmetros do Argon2 devem ser configurados?
A: Configuração recomendada pelo OWASP: Custo de memória (m): 47104 KB (cerca de 47MB), pode aumentar para 64MB ou mais se o desempenho do servidor for bom. Custo de tempo (t): 1-3 iterações, geralmente 1 é suficiente. Paralelismo (p): 1 (single-threaded), evitar ataques paralelos. Comprimento do hash: 32 bytes (256 bits). Método de ajuste: Teste no ambiente de desenvolvimento, garanta que um único hash leve 0,5-1 segundo, depois ajuste com base no desempenho do servidor. Nota: Parâmetros mais altos significam mais segurança, mas aumentam a carga do servidor e o tempo de resposta.
Q: Por que o Argon2 é mais adequado para armazenamento de senhas do que o SHA-256?
A: SHA-256 é uma função de hash de propósito geral projetada para computação rápida, o que é uma fraqueza fatal em cenários de armazenamento de senhas. GPUs podem calcular bilhões de hashes SHA-256 por segundo, tornando até senhas com sal vulneráveis a ataques de força bruta. Vantagens do Argon2: 1) Design lento: Um único hash leva 0,5-1 segundo, reduzindo drasticamente a velocidade de força bruta. 2) Memória intensiva: Requer grande memória (64MB), GPUs e ASICs não podem paralelizar ataques. 3) Custo ajustável: À medida que o hardware melhora, os parâmetros podem ser aumentados para manter a segurança. Conclusão: O armazenamento de senhas deve usar algoritmos especializados de hash de senhas (Argon2, bcrypt, PBKDF2), não funções de hash de propósito geral (SHA-256, MD5).
Q: Qual é o formato da string de hash do Argon2?
A: O Argon2 usa o formato de string PHC (Password Hashing Competition): $argon2id$v=19$m=65536,t=3,p=1$saltbase64$hashbase64.
Significados dos componentes: $argon2id: Variante do algoritmo (id/i/d). v=19: Versão do algoritmo (atualmente 19). m=65536,t=3,p=1: Custo de memória (KB), custo de tempo (iterações), paralelismo. saltbase64: Sal codificado em Base64 (16 bytes). hashbase64: Hash codificado em Base64 (32 bytes).
Vantagem: Autocontido com todos os parâmetros, sem necessidade de armazenamento adicional para verificação, facilita futuras atualizações.
Q: Como migrar do bcrypt para o Argon2?
A: Abordagem de migração progressiva: 1) Verificação dupla: Mantenha a lógica de verificação bcrypt, use Argon2 para novos usuários e alterações de senha. 2) Atualização transparente: Quando os usuários fazem login, verifique com bcrypt primeiro, depois re-hasheie imediatamente com Argon2 e atualize o banco de dados em caso de sucesso. 3) Campo identificador: Adicione campo no banco de dados para identificar o tipo de algoritmo de hash (bcrypt/argon2). 4) Migração completa: Após algum tempo (por exemplo, 6 meses), a maioria dos usuários ativos terá migrado, podendo forçar os usuários restantes a redefinir senhas. Nota: bcrypt e Argon2 têm formatos de hash diferentes, podem ser identificados automaticamente pelo prefixo ($2a$ vs $argon2id$).
Q: O Argon2 não será muito lento nos navegadores?
A: O objetivo de design do Argon2 é computação lenta, que é uma garantia de segurança, não uma falha. Usando WebAssembly para calcular Argon2 em navegadores, um único hash leva 0,5-1 segundo, o que tem impacto mínimo na experiência do usuário (usuários esperando 1 segundo após inserir a senha é aceitável). Sugestões de otimização: 1) Computação assíncrona: Use Web Workers para calcular em segundo plano, evite bloquear a UI. 2) Indicador de progresso: Exiba a mensagem “Criptografando...” para melhorar a experiência do usuário. 3) Ajuste de parâmetros: O ambiente do navegador pode reduzir moderadamente o custo de memória (por exemplo, 32MB), mas não abaixo da recomendação mínima do OWASP (47MB). Nota: A verificação do lado do servidor também requer o mesmo tempo de computação, que é o mecanismo central de segurança do Argon2.
Use Cases
Recomendado: Armazenamento de Senhas de Usuários
Este é o principal caso de uso do Argon2. Quando os usuários se registram ou alteram senhas, use Argon2id para fazer hash das senhas e armazenar no banco de dados. Durante o login, extraia a string de hash armazenada, faça hash da senha inserida pelo usuário com os mesmos parâmetros e compare os resultados. As características de memória intensiva do Argon2 tornam os ataques de força bruta extremamente custosos, protegendo as senhas dos usuários mesmo se o banco de dados for comprometido.
Recomendado: Hash de Chaves de API
Chaves de API (como Tokens de API, Chaves de Acesso) geralmente precisam ser armazenadas no banco de dados, mas não devem ser armazenadas em texto simples. Use Argon2 para fazer hash das chaves de API; mesmo se o banco de dados for comprometido, os atacantes não podem obter as chaves originais. Para verificação, faça hash da chave fornecida pelo usuário e compare. Nota: Chaves de API são geralmente strings de alta entropia geradas aleatoriamente, pode-se reduzir moderadamente os parâmetros do Argon2 (por exemplo, t=1, m=32MB) para melhorar o desempenho.
Recomendado: Carteiras de Criptomoedas
Carteiras de criptomoedas precisam de senhas para proteger chaves privadas. Use Argon2d (dependente de dados) para derivar chave de criptografia da senha do usuário, depois use essa chave para criptografar a chave privada. A resistência a GPU do Argon2d torna a força bruta de senhas de carteira extremamente custosa. Nota: Cenários de carteira geralmente usam Argon2d em vez de Argon2id porque o risco de ataque de canal lateral é menor, enquanto a resistência a GPU é mais importante.
- ✅ Argon2d (resistente a GPU, recomendado para carteiras)
- ✅ Argon2id (segurança mais abrangente)
- scrypt (escolha clássica, usado pelo Bitcoin Core)
- 💡 Combine com carteiras de hardware para maior segurança
Recomendado: Derivação de Chave de Criptografia de Arquivos
Use Argon2 para derivar chave de criptografia de arquivo da senha do usuário. Após o usuário fornecer a senha, o Argon2 gera uma chave de comprimento fixo (por exemplo, 256 bits), depois use essa chave para criptografar o arquivo (por exemplo, usando AES-256-GCM). O sal e os parâmetros do Argon2 são armazenados no cabeçalho do arquivo; durante a descriptografia, extraia os parâmetros e re-derive a chave. Esta abordagem é amplamente usada em arquivos criptografados (como 7-Zip, WinRAR) e criptografia de disco (como VeraCrypt).
- ✅ Argon2id (recomendado)
- ✅ Argon2i (resistente a canal lateral)
- scrypt (escolha clássica)
- 💡 Armazene sal e parâmetros no cabeçalho do arquivo
Recomendado: Códigos de Backup de Autenticação de Dois Fatores
Códigos de backup de autenticação de dois fatores (2FA) precisam ser hasheados antes do armazenamento para evitar abuso se o banco de dados for comprometido. Como os códigos de backup são strings de alta entropia geradas aleatoriamente (tipicamente 8-16 caracteres), pode-se usar parâmetros Argon2 mais baixos (por exemplo, t=1, m=32MB) para melhorar o desempenho. Durante a verificação, faça hash do código de backup inserido pelo usuário e compare; invalide imediatamente o código de backup após verificação bem-sucedida.
Não Recomendado: Cenários Sensíveis ao Desempenho em Tempo Real
As características lentas do Argon2 o tornam inadequado para cenários que requerem desempenho extremamente alto, como autenticação de API de alta frequência, login em jogos em tempo real, autenticação de dispositivos IoT, etc. Esses cenários devem usar autenticação baseada em token (como JWT, OAuth) ou gerenciamento de sessão, em vez de hash de senha para cada solicitação. O Argon2 é usado apenas uma vez durante o login do usuário; após verificação bem-sucedida, emita token, solicitações subsequentes usam autenticação por token.
- ✅ JWT + HMAC-SHA256 (alto desempenho)
- ✅ Session + Cookie (abordagem tradicional)
- ✅ OAuth 2.0 (protocolo padrão)
- ❌ Não use Argon2 em cenários de alta frequência
Recomendações de Melhores Práticas
- Argon2id é a melhor escolha para armazenamento de senhas, recomendado para todos os novos projetos. Projetos existentes devem migrar gradualmente de bcrypt/PBKDF2 para Argon2.
- A configuração de parâmetros segue as recomendações do OWASP: m ≥ 47MB, t ≥ 1, p = 1. Se o desempenho do servidor for bom, pode aumentar o custo de memória para 64MB ou mais.
- Não use Argon2 em cenários de alta frequência; deve combinar com autenticação por token (JWT, Session) para alto desempenho.
- Ao migrar do bcrypt, use abordagem progressiva: mantenha verificação bcrypt, use Argon2 para novos usuários e alterações de senha, atualize transparentemente durante o login.
- O ambiente do navegador usa WebAssembly para calcular Argon2, combine com Web Workers e indicadores de progresso para melhorar a experiência do usuário.