Hashes/Cripto

Scrypt Hash + Verify

Faça hash de senhas com scrypt (RFC 7914, KDF memory-hard) com verificação em relação a um hash existente.


                    

Scrypt (RFC 7914) was one of the first memory-hard password-hashing algorithms: it deliberately requires a lot of RAM, not just CPU time, to make parallel brute-forcing on GPUs and ASICs harder.

How to use it

Common uses

Things to keep in mind

The N parameter (memory cost) increases both required memory and compute time exponentially — tune it to your server's actual capacity.

Scrypt has been superseded by Argon2 (the official Password Hashing Competition winner) as the recommended choice for new systems, though scrypt itself still isn't considered unsafe.

Artigo sobre esta ferramenta: Scrypt: por que o algoritmo precisa de tanta memória

Perguntas frequentes

Como o scrypt difere do bcrypt ou PBKDF2?

O scrypt é deliberadamente exigente em memória além de intensivo em CPU, tornando-o muito mais caro de quebrar usando GPUs ou hardware ASIC personalizado em comparação com bcrypt ou PBKDF2, que resistem principalmente à força bruta baseada em CPU.

O que os parâmetros N, r e p controlam?

N define o custo de CPU/memória (deve ser potência de dois), r define o tamanho do bloco que afeta o uso de memória por operação, e p define a paralelização — aumentar qualquer um deles eleva o custo de recursos tanto para uso legítimo quanto para ataques.

O scrypt ainda é uma boa escolha comparado ao Argon2?

O scrypt continua sólido e testado em batalha, mas o Argon2 (vencedor da Password Hashing Competition) geralmente é recomendado para novos sistemas, pois oferece controle mais refinado sobre memória e resistência a ataques de canal lateral.

Quanta memória o scrypt realmente consome?

Aproximadamente 128 × N × r bytes por cálculo. Com parâmetros típicos (N=16384, r=8), são cerca de 16 megabytes por hash — insignificante para um único login, mas relevante com milhares de autenticações simultâneas no servidor.

Onde mais o scrypt é usado, além do hash de senhas?

O scrypt é conhecido como algoritmo de proof-of-work em algumas criptomoedas (como o Litecoin) — foi escolhido justamente pela resistência à mineração em dispositivos ASIC especializados, característica do bitcoin com seu SHA-256.

Artigos: Hashes/Cripto

Hash Generator: em que MD5, SHA-1 e SHA-256 diferem entre si

Por que o MD5 ainda é usado para verificar a integridade de arquivos, mas não para senhas.

Checksum Verifier: como verificar que um arquivo não está corrompido

Por que um checksum coincidente confirma a integridade de um arquivo, mas não quem o criou.

HMAC: em que um hash com chave difere de um hash comum

Por que um SHA-256 comum não protege contra a adulteração de uma mensagem, mas o HMAC sim.

Bcrypt: por que as senhas são hasheadas devagar, não rápido

Por que um SHA-256 rápido é uma má escolha para senhas, e um bcrypt lento é a certa.

UUID: como são gerados identificadores que quase nunca se repetem

Por que um UUID v4 pode ser gerado de forma independente em milhões de máquinas sem risco de colisão.

Gerador de senhas: o que realmente torna uma senha forte

Por que uma senha longa feita de palavras de dicionário é mais forte que uma curta com símbolos e números.

AES: como funciona a criptografia simétrica

Por que a mesma chave cifra e decifra os dados no AES, e como isso difere da criptografia assimétrica.

Argon2: por que esse algoritmo venceu a competição de hashing de senhas

Como o Argon2 se defende melhor contra ataques com GPU do que algoritmos de hashing de senhas mais antigos.

TOTP: como funcionam os códigos de uso único em apps autenticadores

Por que o código do Google Authenticator funciona sem internet e se sincroniza com o servidor apenas pela hora.

PBKDF2: o padrão mais antigo de alongamento de chave

Por que o número de iterações recomendado para o PBKDF2 cresce a cada ano.

X.509: o que há dentro de um certificado SSL

O que exatamente o navegador verifica no certificado de um site antes de mostrar o cadeado verde.

PGP: como funciona a criptografia de chave pública e privada

Por que se pode compartilhar livremente uma chave pública PGP, mas nunca a privada.