Skip to content

BCrypt hashing for Node.js, using Openwall BCrypt compiled to WebAssembly

Notifications You must be signed in to change notification settings

LinusU/cwasm-openwall-bcrypt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Openwall BCrypt

BCrypt hashing for Node.js, using Openwall BCrypt compiled to WebAssembly.

Entropy when generating salts are provided by crypto.randomFillSync from Node.js.

Timing attacks are mitigated by using the constant time comparison function crypto.timingSafeEqual from Node.js.

Installation

npm install --save @cwasm/openwall-bcrypt

Usage

const bcrypt = require('@cwasm/openwall-bcrypt')


// When user signs up
const hash = bcrypt.hashSync('password', 12)


// When user logs in
if (bcrypt.compareSync('password', hash)) {
  // The password was correct
}

API

compareSync(password, hash)

  • password (string, required) - The password to be checked.
  • hash (string, required) - The hash to be checked against.
  • returns boolean - True if the password matches the hash, false otherwise.

Test a password against a previously computed hash.

genSaltSync(rounds)

  • rounds (number, required) - The number of rounds to use when generating the salt.
  • returns string

Generate a salt.

hashSync(password, rounds)

  • password (string, required) - The password to hash.
  • rounds (number, required) - The number of rounds to use when generating the salt.
  • returns string

Generate a hash for the given password, using a random salt.

About

BCrypt hashing for Node.js, using Openwall BCrypt compiled to WebAssembly

Resources

Stars

Watchers

Forks

Packages

No packages published