ldap-passwords
Version:
ldap-passwords offers secure password hashing and verification using LDAP password algorithms.
130 lines (105 loc) • 4.55 kB
Markdown
<a href="http://ldap-passwords.vercel.app/">
<h1 align="center">Ldap-passwords</h1>
</a>
<p align="center">ldap-passwords offers secure password hashing and verification using LDAP password algorithms.</p>
<p align="center">
<a href="https://www.npmjs.com/package/ldap-passwords">
<img src="https://img.shields.io/npm/dt/ldap-passwords?color=%23c12127&label=downloads&logo=npm" alt="npm"/>
</a>
<a href="https://github.com/dethdkn/ldap-passwords/blob/main/LICENSE">
<img src="https://img.shields.io/github/license/dethdkn/ldap-passwords?color=%233da639&logo=open%20source%20initiative" alt="License"/>
</a>
<a href="https://gitmoji.dev">
<img src="https://img.shields.io/badge/gitmoji-%20😜%20😍-FFDD67" alt="Gitmoji"/>
</a>
<a href="https://rosa.dev.br">
<img src="https://img.shields.io/badge/check me!-👻-F28AA9" alt="rosa.dev.br"/>
</a>
</p>
<h3 align="center">
<a href="https://ldap-passwords.vercel.app/">
📚 Full Documentation
</a>
</h3>
- Encrypt a plain text password with Ldap passwords algorithm.
- Verify encrypted passwords.
- No external dependencies.
- SHA512 CRYPT
- SSHA
- MD5
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`
1. Import the function into your project:
```ts
import { sha512Crypt, verifySha512Crypt } from 'ldap-passwords'
```
2. Encrypt a plain text password using sha512 and a random salt:
```ts
const encryptedPassword = sha512Crypt('mySuperSecretPassword')
// return {CRYPT}$6$NQgPVC0up/oNVCb4$Aduz92Zfo/PFDE/XhvA3QmSqHquqdNiCdZvc9N5/UTpEUepMdd/6Mq/TeoM07wvyxHpg8ELGVzTWZt2e7Z9LY/
```
3. Encrypt a plain text password using sha512 and a custom salt:\
**The maximum length of salt is 16 characters**
```ts
const encryptedPassword = sha512Crypt('mySuperSecretPassword', 'myDopeCustomSalt')
// return {CRYPT}$6$myDopeCustomSalt$4ENRn.vwcs09z0fjr6Jt3NMOFVkn.p9v7ilDcK/CwRnQm48Y5HawkiGivh4gBTLwSY4SQNfCAe05E1nCTpZ0u.
```
4. 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**
```ts
const isValid = verifySha512Crypt('mySuperSecretPassword', arrayOfSha512Passwords)
// return true or false
```
1. Import the function into your project:
```ts
import { ssha, verifySSHA } from 'ldap-passwords'
```
2. Encrypt a plain text password using SSHA:
```ts
const encryptedPassword = ssha('mySuperSecretPassword')
// return {SSHA}sTIysPunEI4boe6OwgQO+/tRZao2OWJIbDMvY0g2UlM=
```
3. 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**
```ts
const isValid = verifySSHA('mySuperSecretPassword', arrayOfSSHAPasswords)
// return true or false
```
1. Import the function into your project:
```ts
import { md5, verifyMD5 } from 'ldap-passwords'
```
2. Encrypt a plain text password using md5:
```ts
const encryptedPassword = md5('mySuperSecretPassword')
// return {MD5}aTVgaG9NWR2N1eNABkQgYQ==
```
3. 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**
```ts
const isValid = verifyMD5('mySuperSecretPassword', arrayOfMD5Passwords)
// return true or false
```
1. Import the function into your project:
```ts
import { ldapVerifyAll } from 'ldap-passwords'
```
2. 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**
```ts
const isValid = ldapVerifyAl('mySuperSecretPassword', arrayOfHashedPasswords)
// return true or false
```
Copyright © 2024 [Gabriel 'DethDKN' Rosa](https://github.com/dethdkn)\
This project is under [MIT license](https://github.com/dethdkn/ldap-passwords/blob/main/LICENSE)