- Introduction
- How is this safe?
- Installation
- Usage in Browser
- Usage in Node.js
- Usage in Command Line
- Development
password-leak
is a JavaScript module that can be used to determine if a password is compromised by checking with the Have I Been Pwned API.
Your passwords are NEVER transmitted to any other system. This library makes use of the Have I Been Pwned API, which implements a k-Anonymity Model so your password can be checked without ever having to give it to any other party.
npm install @mathiscode/password-leak@latest
<script src="https://unpkg.com/@mathiscode/password-leak@latest"></script>
<script>
const isLeaked = await isPasswordLeaked('myPassword')
const strength = await checkPasswordStrength('myPassword')
console.log('Is leaked?', isLeaked)
console.log('Strength', strength)
</script>
import isPasswordLeaked from '@mathiscode/password-leak'
const isLeaked = await isPasswordLeaked('myPassword')
const strength = await checkPasswordStrength('myPassword')
console.log('Is leaked?', isLeaked)
console.log('Strength', strength)
const { checkPasswordStrength, isPasswordLeakedSync } = require('@mathiscode/password-leak')
isPasswordLeakedSync('myPassword', (error, isLeaked) => {
if (error) throw new Error(error)
console.log('Is leaked?', isLeaked)
})
const strength = checkPasswordStrength('myPassword')
console.log('Strength', strength)
Install globally:
npm install -g @mathiscode/password-leak
You can also use it without installing via npx:
npx @mathiscode/password-leak myPassword
You can then use it in two ways:
- Interactive mode:
password-leak
- Direct mode:
password-leak myPassword
The command will:
- Print whether the password has been compromised and its strength
- Exit with status code 0 if the password is safe
- Exit with status code 1 if the password is compromised or an error occurs
# Clone the repository
git clone https://github.com/mathiscode/password-leak.git
cd password-leak
# Use pnpm to install dependencies
pnpm install
# Build the project
pnpm run build
# Run the tests
pnpm run test
# Start the UI
pnpm run ui # demo at https://password-leak.vercel.app