Summary
scrypt uses Node defaults (N = 2¹⁴), below current OWASP guidance (N = 2¹⁷). Salt (16-byte random) and timingSafeEqual verification are correct.
Remediation
Pin explicit parameters { N: 2**17, r: 8, p: 1 } (and set maxmem accordingly). Consider a rehash-on-login path so existing hashes upgrade over time.
Severity
Low.
Source: internal security review (commit 0360e87, 2026-07-21).
Summary
scrypt uses Node defaults (N = 2¹⁴), below current OWASP guidance (N = 2¹⁷). Salt (16-byte random) and
timingSafeEqualverification are correct.Remediation
Pin explicit parameters
{ N: 2**17, r: 8, p: 1 }(and setmaxmemaccordingly). Consider a rehash-on-login path so existing hashes upgrade over time.Severity
Low.
Source: internal security review (commit
0360e87, 2026-07-21).