Skip to main content

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

pwnedpasswords-offline-1.0.0.tar.gz (12.4 kB view hashes)

Uploaded Source

Built Distribution

pwnedpasswords_offline-1.0.0-py3-none-any.whl (22.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page