Feb. 10, 2024, 2:02 p.m. | GreenIntro

DEV Community dev.to

Why are people using third party packages like bcrypt to hash user credentials instead of Node's own built-in classes and methods?


https://nodejs.org/api/crypto.html#cryptoscryptpassword-salt-keylen-options-callback


Reduce packages (and dependencies) by using Node's asynchronous scrypt method.


Well how does it work?



import { scrypt, randomBytes } from 'crypto';

const salt = randomBytes(32).toString('hex');
scrypt(password, salt, 32, async (err, derivedKey) => {
const userToCreate = {
password: derivedKey.toString('hex'),
username: username,
salt: salt,
};
});


The userToCreate will then contain the hashed password, as well as a …

asynchronous authentication bcrypt credentials crypto dependencies hash hashing hex import it work javascript node npm own packages party password people salt third user credentials webdev work

CyberSOC Technical Lead

@ Integrity360 | Sandyford, Dublin, Ireland

Cyber Security Strategy Consultant

@ Capco | New York City

Cyber Security Senior Consultant

@ Capco | Chicago, IL

Sr. Product Manager

@ MixMode | Remote, US

Security Compliance Strategist

@ Grab | Petaling Jaya, Malaysia

Cloud Security Architect, Lead

@ Booz Allen Hamilton | USA, VA, McLean (1500 Tysons McLean Dr)