Pular para o conteúdo

Scrypt Generator

Derive uma chave scrypt a partir de uma senha, usando um salt aleatório ou personalizado. Escolha o expoente de custo até 15 (N até 32768), o tamanho do bloco r até 8, o paralelismo p até 4 e o comprimento da chave entre 16 e 64 bytes. A ferramenta segue a RFC 7914 e retorna a chave, o salt usado e os parâmetros em hexadecimal ou Base64, prontos para comparar com Node.js crypto.scrypt, Python hashlib ou libsodium. A senha não é exibida.

Redefinir

Perguntas frequentes

O que é scrypt?

Scrypt é uma função de derivação de chave com alto consumo de memória, criada por Colin Percival e padronizada na RFC 7914. Ela deriva uma chave a partir de uma senha e de um salt, exigindo que cada tentativa use um grande bloco de memória. É usada para armazenamento de senhas, criptografia de discos e algumas criptomoedas.

O que significam N, r e p?

N é o custo de CPU e memória e deve ser uma potência de dois; r é o tamanho do bloco e p é o fator de paralelização. O uso de memória é de aproximadamente 128 vezes N vezes r bytes, portanto N = 16384 com r = 8 requer 16 MiB. Aqui, N vai até 32768, r até 8 e p até 4.

Quais são os parâmetros padrão?

Os valores padrão são N = 16384 (expoente de custo 14), r = 8, p = 1 e uma chave de 32 bytes: as configurações interativas recomendadas no artigo sobre scrypt. Aumente N para reforçar a proteção, até onde o seu sistema permitir.

Como o salt é escolhido?

Se o campo de salt estiver vazio, a ferramenta cria 16 bytes aleatórios e os mostra no resultado. Se você inserir um salt, serão usados os bytes UTF-8 correspondentes, permitindo reproduzir uma chave de outro sistema. Nunca reutilize o mesmo salt para senhas diferentes.

Posso reproduzir os vetores de teste da RFC 7914?

Sim. A senha pleaseletmein com o salt SodiumChloride, expoente de custo 14, r = 8, p = 1 e uma chave de 64 bytes gera 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887, o terceiro vetor da RFC.

Por que os parâmetros têm limites?

Scrypt aloca memória real e é executado em um servidor compartilhado. Limitar N a 32768, r a 8 e p a 4 mantém cada derivação abaixo de aproximadamente 32 MiB de memória e de um ou dois segundos de execução.

Como armazeno um hash de senha scrypt?

Armazene juntos a chave, o salt e N, r e p, pois você precisará de todos esses valores para verificar uma senha depois. Bibliotecas como Node.js crypto.scrypt deixam o formato de armazenamento a seu critério, enquanto outras usam seus próprios formatos de string.

Minha senha está incluída no resultado?

Não. A resposta contém a chave, o salt e os parâmetros, mas nunca a senha. Nada é registrado nem armazenado.

Devo usar scrypt ou Argon2?

Ambos são resistentes ao uso intensivo de memória e adequados para senhas. Argon2id é a recomendação mais recente e é mais fácil de ajustar, enquanto scrypt tem amplo suporte em bibliotecas padrão, como Node.js e Python.

O que as opções hex e Base64 alteram?

Elas alteram a forma como a chave e o salt são escritos no resultado. Os bytes são os mesmos, então escolha o formato que seu código consegue ler.

Sobre OneClick Pro

OneClick Pro é uma coleção gratuita com mais de 150 ferramentas da Web para o trabalho cotidiano: converter imagens e unidades, formatar e validar código, verificar domínios e SEO, e trabalhar com textos, datas e números. Todas as ferramentas funcionam sem registro ou assinatura, e o que você digita é usado apenas para calcular o resultado e nunca é armazenado. Use o serviço como uma caixa de ferramentas para tarefas pontuais ou salve nos favoritos as ferramentas que você usa todos os dias.