An async version that uses the Web Crypto API is also available. This works in browsers, edge runtimes, and Node.js 20+: The output is deterministic for repeated runs on the same Node.js / browser ...