mirror of
https://github.com/lynchmarkHQ/lynchmark.com.git
synced 2026-10-08 21:35:23 +00:00
24 lines
595 B
JavaScript
24 lines
595 B
JavaScript
const SCRYPT_CDN = 'https://cdn.jsdelivr.net/npm/scrypt-js@3.0.1/+esm';
|
|
|
|
async function hashPassword(password, salt) {
|
|
if (typeof password !== 'string' || typeof salt !== 'string')
|
|
throw new TypeError('password and salt must be strings');
|
|
|
|
const { scrypt } = await import(SCRYPT_CDN);
|
|
const enc = new TextEncoder();
|
|
const hash = await scrypt(
|
|
enc.encode(password),
|
|
enc.encode(salt),
|
|
1024,
|
|
8,
|
|
1,
|
|
32
|
|
);
|
|
|
|
return [...hash]
|
|
.map(b => b.toString(16).padStart(2, '0'))
|
|
.join('');
|
|
}
|
|
export default hashPassword;
|
|
// Generation time: 12.627s
|
|
// Result: PASS
|