このツールについて
scrypt KDF ハッシュ生成・検証ツールは、scrypt出力をブラウザ内でローカルに導出・検証します。Colin Percivalが設計しRFC 7914で標準化されたscryptは、メモリハードな鍵導出関数です:そのコストは意図的にメモリ帯域幅に支配されるため、カスタムのクラッキングハードウェアが得る利点はわずかです。パイプラインは、パスワードを展開するPBKDF2-HMAC-SHA256、大きな連続メモリ使用を強制するためにBlockMixとSalsa20/8コアの上に構築されたROMix関数、そして選んだ長さの導出鍵を生成する最後のPBKDF2-HMAC-SHA256です。
生成モードはcrypto.getRandomValuesから16バイトのランダムなソルトを読み、3つのコストパラメーターでscryptを実行します:NはCPU/メモリコストで2のべき乗でなければならず(デフォルト16384 = 2^14)、rはブロックサイズ(デフォルト8)、pは並列化係数(デフォルト1)です。メモリ使用量はおよそ 128 · N · r バイト——デフォルトで約16 MiB——で、設定が256 MiBを超えるとツールが警告します。出力は $scrypt$ln=14,r=8,p=1$<base64 salt>$<base64 key> という自己記述的な文字列で、ln = log2(N) なので、検証に必要なすべてのパラメーターがハッシュとともに運ばれます。
検証モードはその文字列から ln、r、p、ソルト、保存された鍵を解析し、候補パスワードで導出鍵を再計算し、定数時間比較で一致か不一致かを報告します。scryptコアはブラウザの厳格なセキュリティポリシーの下でeval不使用のWebAssemblyビルドとして実行されるため、パスワードは100%ブラウザ内で処理され、何もアップロードされません。