Pwned Passwords check (offline)
Project description
Pwned Passwords check (offline)
Download "SHA-1" version "(ordered by hash)" from https://haveibeenpwned.com/Passwords
Extract file, yielding pwned-passwords-sha1-ordered-by-hash-v7.txt
(for current version 7)
Simple usage
from pwnedpasswords_offline import PwnedPasswordsOfflineChecker
if PwnedPasswordsOfflineChecker("data/pwned-passwords-sha1-ordered-by-hash-v7.txt").lookup_raw_password("Password1!"):
print("Pwned!")
Batch usage
You can also pre-open the database file, especially if you're checking multiple passwords in bulk:
from pwnedpasswords_offline import PwnedPasswordsOfflineChecker
checker = PwnedPasswordsOfflineChecker("data/pwned-passwords-sha1-ordered-by-hash-v7.txt")
checker.open()
for password in ["Password1!", "correct horse battery staple", "actress stapling driver placidly swivel doorknob"]:
if checker.lookup_raw_password(password):
print(f"'{password}' is pwned!")
checker.close()
You should not forget to call .close()
after you're done.
As context manager
You can use the object as a context manager to automatically open and close it:
from pwnedpasswords_offline import PwnedPasswordsOfflineChecker
with PwnedPasswordsOfflineChecker("data/pwned-passwords-sha1-ordered-by-hash-v7.txt") as checker:
for password in ["Password1!", "correct horse battery staple", "actress stapling driver placidly swivel doorknob"]:
if checker.lookup_raw_password(password):
print(f"'{password}' is pwned!")
Check hash directly
Instead of calling .lookup_raw_password()
you can call .lookup_hash()
if you already have the plain SHA-1 hash:
from pwnedpasswords_offline import PwnedPasswordsOfflineChecker
if PwnedPasswordsOfflineChecker("data/pwned-passwords-sha1-ordered-by-hash-v7.txt").lookup_hash("32CA9FD4B3F319419F2EA6F883BF45686089498D"):
print("Pwned!")
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for pwnedpasswords-offline-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61f4d5701ccf33cf571089968ac6dea2698f5405ebe307ff95777aaca990fb93 |
|
MD5 | 5e563018e4749ff72354710009edbb0e |
|
BLAKE2b-256 | bd104ca9e4889494d8621a8673dd9773f7acd40332f61feff5dbfe089bac6e35 |
Close
Hashes for pwnedpasswords_offline-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 416ff3b3f30ebe6659256393a2d244bfa0ebf0388e0b7722801e49dc22ef65f3 |
|
MD5 | d9fd3f7e0b7ac8ee34ae1ab4dc8e69b7 |
|
BLAKE2b-256 | c8169f321f320527a5f28fff19e851c683c4b30e451f526f4643830ab5e09a15 |