bcrypt - A bcrypt library for NodeJS.
bcrypt
is a password hashing function designed by Niels Provos and David Mazières,
based on the Blowfish cipher, and presented at USENIX in 1999.
$ sbt clean publish-local
Before running the tests the first time, you must ensure the npm packages are installed:
$ npm install
Then you can run the tests:
$ sbt test
Using Bcrypt
asynchronously via callbacks
import io.scalajs.npm.bcrypt._
val saltRounds = 13
val myPlaintextPassword = "b@c0n"
Bcrypt.hash(myPlaintextPassword, saltRounds, (_, hash) => {
Bcrypt.compare(myPlaintextPassword, hash, (_, isMatch) => {
println(s"The password was a match: $isMatch") // The password was a match: true
})
})
Using Bcrypt
asynchronously via promises
import io.scalajs.npm.bcrypt._
val saltRounds = 13
val myPlaintextPassword = "b@c0n"
for {
hash <- Bcrypt.hash(myPlaintextPassword, saltRounds)
isMatch <- Bcrypt.compare(myPlaintextPassword, hash)
} {
println(s"The password was a match: $isMatch") // The password was a match: true
}
Using Bcrypt
synchronously
import io.scalajs.npm.bcrypt._
val saltRounds = 13
val myPlaintextPassword = "b@c0n"
val hash = Bcrypt.hashSync(myPlaintextPassword, saltRounds)
val isMatch = Bcrypt.compareSync(myPlaintextPassword, hash)
println(s"The password was a match: $isMatch") // The password was a match: true
To add the Bcrypt
binding to your project, add the following to your build.sbt:
libraryDependencies += "io.scalajs.npm" %%% "bcrypt" % "0.5.0"
Optionally, you may add the Sonatype Repository resolver:
resolvers += Resolver.sonatypeRepo("releases")