unixcrypt-browser
v2.0.4
Published
Node.js implementation of Unixcrypt, specifically SHA-256 and SHA-512
Maintainers
Readme
Unixcrypt for Browser
A Browser module for encrypting and verifying passwords according to the SHA-256 and SHA-512 Crypt standard: https://www.akkadia.org/drepper/SHA-crypt.txt
Installation
$ npm install unixcrypt-browserUsage
JavaScript
The JavaScript usage should be identical to the TypeScript below.
TypeScript
import { encrypt, verify } from "unixcrypt-browser"
const plaintextPassword = "password"
// without providing salt, random salt is used, and default number of rounds
const pwHash = encrypt(plaintextPassword)
// verify password with generated hash
console.log(verify(plaintextPassword, pwHash))
// true
// specify number of rounds
const moreRounds = encrypt(plaintextPassword, "$6$rounds=10000")
console.log(verify(plaintextPassword, moreRounds))
// true
// provide custom salt
const customSalt = encrypt(plaintextPassword, "$6$salt")
console.log(verify(plaintextPassword, customSalt))
// true
// or provide both rounds and salt
const customRoundsAndSalt = encrypt(plaintextPassword, "$6$rounds=10000$salt")
console.log(verify(plaintextPassword, customRoundsAndSalt))
// true
// you can also use SHA-256
const sha256 = encrypt(plaintextPassword, "$5")
console.log(verify(plaintextPassword, sha256))
// trueTest
The tests are written with the built-in node:assert module, using the vitest test runner.
$ npm testor
$ npm run test:watchto get automatic re-tests when files are changed.
