ldap-passwords
TypeScript icon, indicating that this package has built-in type declarations

3.0.2 • Public • Published

ldap-passwords offers secure password hashing and verification using LDAP password algorithms.

npm License Gitmoji rosa.dev.br

✨ Features

  • Encrypt a plain text password with Ldap passwords algorithm.
  • Verify encrypted passwords.
  • No external dependencies.

🪄 Supported Algorithms

  • SHA512 CRYPT
  • SSHA
  • MD5

🚀 Setup

  1. Install with your favorite package manager:
    • pnpm : pnpm i ldap-passwords
    • npm : npm i ldap-passwords
    • yarn : yarn add ldap-passwords
    • bun : bun add ldap-passwords

⚡️ SHA512 CRYPT

  1. Import the function into your project:
import { sha512Crypt, verifySha512Crypt } from 'ldap-passwords'
  1. Encrypt a plain text password using sha512 and a random salt:
const encryptedPassword = sha512Crypt('mySuperSecretPassword')
// return {CRYPT}$6$NQgPVC0up/oNVCb4$Aduz92Zfo/PFDE/XhvA3QmSqHquqdNiCdZvc9N5/UTpEUepMdd/6Mq/TeoM07wvyxHpg8ELGVzTWZt2e7Z9LY/
  1. Encrypt a plain text password using sha512 and a custom salt:
    The maximum length of salt is 16 characters
const encryptedPassword = sha512Crypt('mySuperSecretPassword', 'myDopeCustomSalt')
// return {CRYPT}$6$myDopeCustomSalt$4ENRn.vwcs09z0fjr6Jt3NMOFVkn.p9v7ilDcK/CwRnQm48Y5HawkiGivh4gBTLwSY4SQNfCAe05E1nCTpZ0u.
  1. Validate your plain text password with a sha512 encrypted password:
    The sha512 password can be either a single string or an array of strings. The plain text password will be compared to each sha512 password and the function will return true if any of them matches
const isValid = verifySha512Crypt('mySuperSecretPassword', arrayOfSha512Passwords)
// return true or false

💡 SSHA

  1. Import the function into your project:
import { ssha, verifySSHA } from 'ldap-passwords'
  1. Encrypt a plain text password using SSHA:
const encryptedPassword = ssha('mySuperSecretPassword')
// return {SSHA}sTIysPunEI4boe6OwgQO+/tRZao2OWJIbDMvY0g2UlM=
  1. Validate your plain text password with a MD5 encrypted password:
    The SSHA password can be either a single string or an array of strings. The plain text password will be compared to each SSHA password and the function will return true if any of them matches
const isValid = verifySSHA('mySuperSecretPassword', arrayOfSSHAPasswords)
// return true or false

💥 MD5

  1. Import the function into your project:
import { md5, verifyMD5 } from 'ldap-passwords'
  1. Encrypt a plain text password using md5:
const encryptedPassword = md5('mySuperSecretPassword')
// return {MD5}aTVgaG9NWR2N1eNABkQgYQ==
  1. Validate your plain text password with a MD5 encrypted password:
    The MD5 password can be either a single string or an array of strings. The plain text password will be compared to each MD5 password and the function will return true if any of them matches
const isValid = verifyMD5('mySuperSecretPassword', arrayOfMD5Passwords)
// return true or false

🔍 Verify All

  1. Import the function into your project:
import { ldapVerifyAll } from 'ldap-passwords'
  1. Validate your plain text password with a MD5, SSHA or SHA512 encrypted password: The hashed password can be either a single string or an array of strings. The plain text password will be compared to each hashed password and the function will return true if any of them matches
const isValid = ldapVerifyAl('mySuperSecretPassword', arrayOfHashedPasswords)
// return true or false

📝 License

Copyright © 2024 Gabriel 'DethDKN' Rosa
This project is under MIT license

Package Sidebar

Install

npm i ldap-passwords

Weekly Downloads

26

Version

3.0.2

License

MIT

Unpacked Size

272 kB

Total Files

40

Last publish

Collaborators

  • dethdkn