scrypt Gerador de Hash

Ferramenta gratuita de scrypt Gerador de Hash online. Processamento 100% local — seus dados nunca saem do seu dispositivo.

General
Password Hashing / KDF
Specialized
Deprecated
bytes
Saída

O resultado será exibido aqui...

Entrada Calcular Hash

Usage Guide

Sobre o scrypt

O scrypt (RFC 7914) é uma função de derivação de chave baseada em senha com uso intensivo de memória, projetada para ser custosa tanto em tempo de CPU quanto em memória RAM. Foi criado para resistir a ataques de força bruta por GPU, FPGA e ASIC que ameaçam o PBKDF2 e o bcrypt. O scrypt é usado na prova de trabalho do Litecoin, gerenciadores de senhas e derivação segura de chaves. Três parâmetros de custo permitem ajustar o equilíbrio entre segurança e desempenho.

scrypt é uma KDF, não um hash. Ele deriva uma chave a partir de uma senha e um salt — a saída NÃO é diretamente comparável entre parâmetros diferentes. Sempre armazene a string de parâmetros completa (n:r:p:salt:key) para permitir verificação futura.

Passos de uso

O scrypt é uma função de derivação de chave unidirecional — não pode ser revertida:

1. Inserir senhaDigite a senha da qual deseja derivar uma chave no campo de entrada
2. Configurar parâmetrosDefina N (custo de CPU/memória), r (tamanho do bloco), p (paralelismo). Os padrões (N=16384, r=8, p=1) são adequados para logins interativos
3. Derivar chaveClique em 'Criptografar' — a saída está no formato n:r:p:salt_base64:key_hex
4. Verificar senhaPara verificar, cole a string de saída completa após a senha separada por | (ex.: minhasenha|16384:8:1:salt:keyhex) e clique em 'Descriptografar'
Privacidade: Todas as derivações são executadas inteiramente no seu navegador via WebAssembly. Sua senha nunca é transmitida.

Formato de saída

O scrypt gera a string de parâmetros completa necessária para verificações futuras:

Formaton:r:p:salt_base64:key_hex (ex.: 16384:8:1:abc123...:d4e5f6...)
NFator de custo de CPU e memória — deve ser uma potência de 2 (ex.: 16384 = 2¹⁴)
rParâmetro de tamanho de bloco — afeta o custo de largura de banda de memória
pFator de paralelização — aumenta o custo de CPU independentemente da memória
SaltSalt aleatório de 16 bytes gerado automaticamente por derivação (codificado em Base64)
ChaveChave derivada de 32 bytes (codificada em hexadecimal)

Escolhendo parâmetros do scrypt

Selecione os parâmetros com base nos seus requisitos de segurança e na latência aceitável:

Interativo (login)N=16384, r=8, p=1 — ~100ms em hardware moderno, adequado para autenticação web
Sensível (criptografia de arquivos)N=1048576, r=8, p=1 — ~5s em hardware moderno, adequado para chaves de criptografia de disco
N deve ser potência de 2Valores válidos: 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576
Uso de memóriaAproximadamente 128 × N × r bytes (ex.: N=16384, r=8 → ~16 MB)
Para novas aplicações, considere o Argon2id (o vencedor do Password Hashing Competition recomendado pelo NIST e OWASP). O scrypt é excelente e amplamente utilizado, mas o Argon2id tem um modelo de parâmetros mais simples.

FAQ

Q: O que torna o scrypt resistente a ataques de hardware?

A: O scrypt é memory-hard: seu algoritmo interno ROMix requer acesso a um grande bloco de memória (128 × N × r bytes) em ordem pseudo-aleatória. Esse padrão de acesso sequencial à memória não pode ser paralelizado como o SHA-256 — preencher N=16384, r=8 requer ~16 MB de acesso aleatório, tornando os ataques em hardware GPU/ASIC ordens de magnitude mais caros em comparação com hashes puramente computacionais como SHA-256 ou PBKDF2.

Q: Como o scrypt se compara ao bcrypt e Argon2?

A: Os três são algoritmos de hash de senhas, mas diferem no design: bcrypt (1999) é apenas time-hard (4 KB de memória fixo), tornando-se cada vez mais vulnerável a ataques GPU. scrypt (2009) é memory-hard, resistente a GPU/ASIC, mas tem interação complexa de parâmetros (N grande também aumenta o custo de CPU via p). Argon2id (2015, vencedor do PHC) é memory-hard, resistente a GPU e tem parâmetros independentes de tempo/memória/paralelismo. OWASP e NIST recomendam Argon2id para novos sistemas; scrypt é uma forte segunda escolha.

Q: Por que N precisa ser uma potência de 2?

A: O algoritmo ROMix do scrypt usa N internamente como o tamanho de uma tabela de pesquisa e depende de mascaramento de bits (index & (N-1)) para acesso aleatório eficiente. Esse truque de máscara só funciona corretamente quando N é uma potência de 2. Valores comuns: 16384 (2¹⁴) para uso interativo, 1048576 (2²⁰) para criptografia de arquivos.

Q: Posso usar a saída do scrypt diretamente como chave criptográfica?

A: Sim — o scrypt é especificamente projetado para produzir material de chave. A saída de 32 bytes (256 bits) é adequada como chave AES-256 ou chave ChaCha20-Poly1305. No entanto, nunca use a mesma derivação scrypt para múltiplos propósitos (ex.: autenticação E criptografia) — derive chaves separadas com salts diferentes ou use uma KDF como HKDF para expandir uma chave raiz.

Q: Qual é o formato de entrada para verificação?

A: Para verificar uma senha contra um hash scrypt armazenado, coloque a senha e a string completa de saída do scrypt separadas por uma barra vertical: senha|16384:8:1:salt_base64:key_hex. A ferramenta re-deriva a chave usando os parâmetros armazenados e a compara com a chave armazenada. Se coincidirem, retorna '✓ Senha verificada'.

Q: O scrypt é adequado para armazenamento de senhas em banco de dados?

A: Sim, com parâmetros adequados. Armazene a string completa (n:r:p:salt:key) por usuário — ela contém tudo necessário para verificações futuras. Use no mínimo N=16384, r=8, p=1 para logins interativos; aumente N para aplicações mais críticas. Consulte a Folha de dicas de armazenamento de senhas da OWASP para recomendações atuais.

Use Cases

Recomendado: Armazenamento de senhas

O scrypt é uma excelente escolha para fazer hash de senhas antes de armazená-las em um banco de dados. Sua característica memory-hard torna os ataques de força bruta offline ordens de magnitude mais caros do que PBKDF2 ou bcrypt. Use N≥16384 para aplicações web, valores mais altos para sistemas mais sensíveis.

Recommended Configuration:
  • ✅ scrypt com N=16384, r=8, p=1 para logins web interativos
  • ✅ Armazenar a string completa n:r:p:salt:key — nunca apenas a chave
  • ✅ Usar um salt aleatório único por usuário (gerado automaticamente por esta ferramenta)
  • ❌ Não usar scrypt com N<1024 — fator de trabalho insuficiente
  • 💡 Considerar Argon2id para novos projetos — recomendação atual da OWASP
Recomendado: Derivação de chave para criptografia de disco

O scrypt é muito adequado para derivar chaves de criptografia a partir de frases-senha para criptografia de disco ou arquivo. Parâmetros mais altos (N=1048576) são apropriados porque a derivação ocorre uma vez no momento de montagem e os segundos extras de atraso são aceitáveis. A chave derivada pode ser usada diretamente com AES-256-GCM.

Recommended Configuration:
  • ✅ scrypt com N=1048576 (2²⁰) para derivação de chaves de criptografia de disco/arquivo
  • ✅ Usar a saída de 32 bytes diretamente como chave AES-256-GCM
  • ✅ Armazenar os parâmetros scrypt e o salt junto com os dados criptografados
  • ❌ Não usar a mesma chave derivada para autenticação e criptografia
Recomendado: Aplicações de criptomoedas

O scrypt foi adotado como algoritmo de Prova de Trabalho para o Litecoin (e outras criptomoedas). Em aplicações de carteira, o scrypt é usado para derivar chaves privadas de mnemônicos ou frases-senha. Sua característica memory-hard foi escolhida especificamente para resistir às vantagens da mineração ASIC.

Recommended Configuration:
  • ✅ scrypt para derivação de chaves de carteira a partir de frases-senha do usuário
  • ✅ scrypt para armazenamento de chaves protegidas por frase-senha
  • ❌ Para aplicações de mineração PoW, usar parâmetros específicos da implementação
Não recomendado: Contextos não autenticados

O scrypt deriva uma chave — ele não fornece autenticação ou integridade por si só. Se precisar de um código de autenticação de mensagem, use HMAC-SHA256. Se precisar de uma soma de verificação de dados rápida, use SHA-256. O custo computacional do scrypt o torna inadequado para operações de alto volume.

Recommended Configuration:
  • ❌ scrypt para hash de propósito geral (usar SHA-256 em vez disso)
  • ❌ scrypt para HMAC ou autenticação de mensagem
  • ❌ scrypt para operações de alta frequência (assinatura de requisições API, tokens por requisição)
  • ✅ scrypt apenas onde suas propriedades de proteção por senha são explicitamente necessárias

Resumo das melhores práticas

  • scrypt é uma KDF memory-hard — adequada para hash de senhas e derivação de chaves a partir de frases-senha.
  • Sempre armazene a string de parâmetros completa (n:r:p:salt:key) — nunca apenas a chave.
  • N deve ser uma potência de 2; o padrão N=16384, r=8, p=1 é adequado para logins interativos.
  • Para novas aplicações, a OWASP recomenda Argon2id como primeira escolha; scrypt é a forte segunda escolha.
  • scrypt NÃO é adequado para hash geral, MACs ou operações de alta frequência — use SHA-256 ou HMAC para isso.

Discussão e Feedback

0 comentários
Eu