Sobre esta ferramenta
O Gerador e Verificador de Hash scrypt KDF deriva e confere saídas scrypt localmente no seu navegador. O scrypt, projetado por Colin Percival e padronizado na RFC 7914, é uma função de derivação de chave memory-hard: seu custo é deliberadamente dominado pela largura de banda de memória para que hardware de quebra personalizado ganhe pouca vantagem. O pipeline é PBKDF2-HMAC-SHA256 para expandir a senha, a função ROMix construída sobre BlockMix e o núcleo Salsa20/8 para forçar grande uso sequencial de memória, e um PBKDF2-HMAC-SHA256 final para produzir a chave derivada do comprimento que você escolher.
O modo de geração lê 16 bytes aleatórios de sal do crypto.getRandomValues e executa o scrypt com três parâmetros de custo: N é o custo de CPU/memória e deve ser uma potência de dois (padrão 16384 = 2^14), r é o tamanho do bloco (padrão 8), e p é o fator de paralelização (padrão 1). O uso de memória é aproximadamente 128 · N · r bytes — cerca de 16 MiB nos padrões — e a ferramenta avisa quando suas configurações excederiam 256 MiB. A saída é uma string autodescritiva $scrypt$ln=14,r=8,p=1$<sal base64>$<chave base64> onde ln = log2(N), então cada parâmetro necessário para verificar é carregado com o hash.
O modo de verificação analisa ln, r, p, o sal e a chave armazenada dessa string, recalcula a chave derivada com a senha candidata, e faz uma comparação em tempo constante para informar se corresponde ou não. O núcleo scrypt roda como um build WebAssembly livre de eval sob a política de segurança estrita do navegador, então as senhas são processadas 100% no seu navegador e nada é enviado.