pwd-crypt
v1.0.0
Published
pwd-crypt is a lightweight Node.js library designed for seamless encryption and decryption of passwords.
Maintainers
Readme
NodeJS Password Encryption Library
=====================================
pwd-crypt is a lightweight Node.js library designed for seamless encryption and decryption of passwords.
Installation
npm install pwd-crypt
import
const { hashPassword, comparePassword, generateSalt } = require('pwd-crypt');import { hashPassword, comparePassword, generateSalt } from 'pwd-crypt';Usage
(async () => {
const salt = await generateSalt(); // Generate a salt for hashing the password
const hash = await hashPassword('mypassword', salt); // Hash the password using the generated salt
const isValid = await comparePassword('mypassword', hash, salt); // Compare the plaintext password with the hashed password
console.log(isValid); // true
})();Examples
const { generateSalt, hashPassword, comparePassword } = require('pwd-crypt');
(async () => {
try {
// Generate a salt
const salt = await generateSalt(16);
// Hash a password
const password = 'mysecretpassword';
const hash = await hashPassword({ password, salt });
// Compare the password
const isValid = await comparePassword({ password, hash, salt });
console.log(`Password is valid: ${isValid}`); // Password is valid: true
// Compare with an incorrect password
const invalidPassword = await comparePassword({
password: 'wrongpassword',
hash,
salt,
});
console.log(`Password is valid: ${invalidPassword}`); // Password is valid: false
} catch (error) {
console.error('Error:', error);
}
})();API
generateSalt(length)
Generates a random salt.
Parameters: - length (optional): The length of the salt. Default is 16.Returns: -Promise<string>: A promise that resolves to the generated salt.
hashPassword(password, salt, iterations, keylen, digest)
Hashes a password with a given salt.
Parameters:
password: The password to hash.salt: The salt to use for hashing.iterations(optional): The number of iterations for the hashing algorithm. Default is 100000.keylen(optional): The length of the key. Default is 64.digest(optional): The digest algorithm. Default is 'sha512'.
Returns:
Promise<string>: A promise that resolves to the hashed password.
comparePassword(password, hash, salt, iterations, keylen, digest)
Compares a password with a hash and salt.
Parameters:
password:The password to compare.hash: The hashed password to compare against.salt: The salt used for hashing..iterations(optional): The number of iterations for the hashing algorithm. Default is 100000.keylen(optional): The length of the key. Default is 64.digest(optional): The digest algorithm. Default is 'sha512'.
Returns:
Promise<string>: A promise that resolves to true if the password matches the hash, otherwise false.
