Skip to content

dethdkn/ldap-passwords

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

36 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

About

πŸ”‘ ldap-passwords offers secure password hashing and verification using LDAP password algorithms.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published