Skip to main content

passhash

License PyPi Version PyPI Status Python Versions Last Commit Build Status Linted by Ruff Code Style by Black

Generate password hashes based on various standards. Most UNIX crypt standards are supported, along with a selection of Microsoft, Cisco, and LDAP-based standards.

Installation

pipx install passhash

Usage

By default, passhash will prompt for a password and generate a UNIX-style SHA2-512 hash:

passhash

Password:
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓
┃ Method       ┃ Hash                                                                                      ┃ Time   ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩
│ sha512_crypt │ $6$rounds=656000$ohgWV4S9N2wPmYsN$7ZR6zmTAy5ePkrjnEnOUyOuF3pRE4TLvucwSs4AewUcOC59YawNkXap │ 0.559s │
│              │ AkqqUNJfcHuo0es6mGRQJO36EGz3aY/                                                           │        │
└──────────────┴───────────────────────────────────────────────────────────────────────────────────────────┴────────┘

A random password can be generated instead with the --generate option:

passhash --generate

Password: am3YVAbcMxK
┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓
┃ Method       ┃ Hash                                                                                      ┃ Time   ┃
┡━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩
│ sha512_crypt │ $6$rounds=656000$M4iIIAbmfVYVytIF$/MrspoGH6PMDq7IeS3RFPFhedUdGoYIddq7KAuYXAH4pYRI1Ge.3ykb │ 0.580s │
│              │ yO2PrTleh4kna.t22CnjefckO5XlyJ1                                                           │        │
└──────────────┴───────────────────────────────────────────────────────────────────────────────────────────┴────────┘

Additional parameters such as the salt can be specified, see passhash --help for the full list:

passhash --generate --unix-md5 --salt secret

Password: RvkrpxCR3uv
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓
┃ Method    ┃ Hash                             ┃ Time   ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩
│ md5_crypt │ $1$secret$SmI5vW6El8fsZHapctHAl. │ 0.008s │
└───────────┴──────────────────────────────────┴────────┘

If a selected hash algorithm requires a username it will prompt for it:

passhash --generate --windows-msdcc2

Username: jsmith
Password: baQpwMueTKm
┏━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓
┃ Method ┃ Hash                             ┃ Time   ┃
┡━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩
│ msdcc2 │ 254bbbbd2da9a0bd48681f9a67e3ca44 │ 0.003s │
└────────┴──────────────────────────────────┴────────┘

One or more algorithms can be specified as runtime, see passhash --help for the full list:

passhash --generate --unix-md5 --ldap-md5

Password: aHMHCAXJMmP
┏━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┓
┃ Method    ┃ Hash                               ┃ Time   ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━┩
│ ldap_md5  │ {MD5}8o3o/NROgZ6U55wxjuLoDw==      │ 0.000s │
│ md5_crypt │ $1$lUpHRYmh$yvlUtIwPk5p5kXoW6kJpu/ │ 0.001s │
└───────────┴────────────────────────────────────┴────────┘

Use --all to generate all supported hash algorithms:

passhash --generate --all

Example Screenshot of --generate --all

Development Environment

git clone https://github.com/ReK42/passhash.git
cd passhash
pre-commit install
pip install -e .[tests]

Release files for passhash 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for passhash 1.0.1
File Size Uploaded
passhash-1.0.1.tar.gz 124.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for passhash 1.0.1
File Interpreter ABI Platform
passhash-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 155.9 kB

Release files / passhash-1.0.1.tar.gz

Download URL passhash-1.0.1.tar.gz
Size 124.0 kB
Tags Source
SHA-256 checksum
How to use checksums
915d0aad0f0512db92a2fefe7151831fc6e0ecec27b593481a4a5b5f5e283ecb
BLAKE2b-256 checksum
How to use checksums
f571efd3292a338587a14e2ea0d3f5330f35f6bcf2aa98767aa03f31c4e649be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.5

Release files / passhash-1.0.1-py3-none-any.whl

Download URL passhash-1.0.1-py3-none-any.whl
Size 31.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
72b139e53244e86480a84a62ee87d4ff3f84bdfb6110415f7f414d8090b1ada4
BLAKE2b-256 checksum
How to use checksums
3325af4e2669e978cd7268cace7576eb20c02ba165f538415f41e7179997a8fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/4.0.2 CPython/3.11.5

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page