scrypt 派生與驗證
明確設置 N、r、p 參數派生 scrypt 密鑰,導出完整 JSON 參數記錄並在本地驗證。
保存密鑰時同時保存參數
scrypt 的輸入包括密碼、鹽值、N、r、p 和輸出長度。本工具返回 algorithm=scrypt、version=1、上述參數及小寫十六進制 salt/hash 字段。JSON 包裝是本工具的交換格式,不冒充通用 scrypt 密碼字符串標準。
驗證需要完整記錄及候選密碼,先檢查資源成本,再計算並比較字節。記錄中的參數可用於 Node crypto.scrypt 或 Python hashlib.scrypt 復現。密碼採用 UTF-8,不做規範化。
內存與瀏覽器限制
默認為 N=131072、r=8、p=1、32 字節密鑰及隨機 16 字節鹽。N 必須為 2–262144 範圍內的 2 的冪;r 為 1–32,p 為 1–8,輸出為 1–128 字節。為復現公開向量,自定義十六進制鹽可為空;短鹽會顯示診斷。
估算工作區 128×r×(N+p)+256×r 不超過 256 MiB,N×r×p 不超過 16777216。Worker 可取消,30 秒後超時。參數可運行不等於適合生產安全策略。
參考
常見問題
為什麼不直接輸出一個通用 scrypt 字符串?
不同應用使用不同包裝格式。JSON 記錄明確每個參數和字節編碼,接入其他應用時需按其格式轉換。
p 會創建瀏覽器線程嗎?
不會。p 是 scrypt 算法參數;固定版本 WASM 實現在一個瀏覽器 Worker 內執行。
輸入會上傳嗎?
不會。處理在瀏覽器中執行,引擎從本站加載;工具不將輸入發送至處理 API,也不保存輸入。清除可移除可見輸入與結果。