Simple high-entropy passphrase generation tool
Project description
cypherseed
A simple high-entropy passphrase generation tool that uses mulitple wordlists to create secure, memorable, and cryptographically strong passphrases.
Features
- High-entropy passphrases using cryptographically secure randomness
- Flexible customization - word count, length filters, separators
- Comprehensive strength analysis with entropy calculations and time-to-crack estimates
- Wordlist management - download, filter, and analyse custom wordlists
Quick Start
Installation from PyPI
pip install cypherseed
Installation from Source
git clone https://github.com/fidacura/cypherseed.git
cd cypherseed
# create venv (recommended)
python -m venv venv
source venv/bin/activate
# install in editable mode
pip install -e .
Command Reference
Basic Usage
# generate a simple 4-word passphrase
cypherseed generate 4
# generate with strength analysis
cypherseed generate 6 --show-strength
# use random numbers/symbols as separators
cypherseed generate 5 --random-separators
Generate Passphrases
# basic generation
cypherseed generate <word_count>
# advanced options
cypherseed generate 6 \
--wordlist eff_large_wordlist \
--min-length 4 \
--max-length 8 \
--include-numbers \
--include-symbols \
--separator "_" \
--count 3 \
--show-strength
# use random separators (numbers/symbols between words)
cypherseed generate 4 --random-separators
# output: word7word@word3word
# generate multiple passphrases
cypherseed generate 5 --count 10
Calculate Strength
# analyse passphrase strength
cypherseed calculate 4 --wordlist default --detailed
cypherseed calculate 6 1296 # 6 words from 1296-word list
Manage Wordlists
# list available wordlists
cypherseed update --list
# download new wordlist
cypherseed update --download https://example.com/wordlist.txt --destination custom.txt
# filter existing wordlist
cypherseed update \
--source wordlist.txt \
--destination filtered.txt \
--min-length 4 \
--max-length 8 \
--exclude-pattern ".*ing$"
# analyse wordlist
cypherseed update --source wordlist.txt --analyse
Available Wordlists
- default - 7,776 words (3-9 characters) - Balanced for security and memorability
- eff_large_wordlist - 7,776 words (3-9 characters) - EFF's large wordlist
- eff_short_wordlist - 1,296 words (3-5 characters) - EFF's short wordlist for limited typing
- diceware_wordlist - 7,776 words (2-12 characters) - Classic Diceware wordlist
Security Features
Cryptographically Secure Randomness
- Uses Python's
secretsmodule for all random operations - No predictable patterns in word or separator selection
High Entropy Generation
- 4 words from default wordlist: ~51.7 bits entropy
- 6 words from default wordlist: ~77.5 bits entropy
- Additional entropy from numbers and symbols when enabled
Strength Analysis
Comprehensive analysis including:
- Entropy calculations in bits
- Strength classifications (Very Weak to Very Strong)
- Time-to-crack estimates
- Total possible combinations
Examples
Basic Passphrases
$ cypherseed generate 4
Generated passphrase: correct-horse-battery-staple
$ cypherseed generate 6 --separator "_"
Generated passphrase: river_mountain_forest_dancing_wizard_crystal
Enhanced Security
$ cypherseed generate 5 --random-separators
Generated passphrase: house7mountain@river3dancing$wizard
$ cypherseed generate 4 --include-numbers --include-symbols --show-strength
Generated passphrase: correct-horse-battery-7-staple-@-9
Strength Analysis:
Entropy: 84.5 bits
Classification: Good
Time to crack: Millions of years
Strength Analysis
$ cypherseed calculate 5 --wordlist default --detailed
Passphrase Strength Analysis:
Word count: 5
Wordlist size: 7776
Base entropy: 64.6 bits
Total entropy: 64.6 bits
Classification: Fair
Total combinations: 2.84e+19
Time to crack (avg): 450.8 years
Development
Setup Development Environment
git clone https://github.com/fidacura/cypherseed.git
cd cypherseed
# create virtual environment
python -m venv venv
source venv/bin/activate
# install with development dependencies
pip install -e .
Testing
# run tests
python -m pytest tests/
# run with coverage
python -m pytest tests/ --cov=cypherseed --cov-report=html
License
This project is licensed under the GNU General Public License v2.0 - see the LICENSE file for details.
Copyright (C) 2025 fidacura. This is free software distributed under GPL v2.0 terms.
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cypherseed-0.1.0.tar.gz.
File metadata
- Download URL: cypherseed-0.1.0.tar.gz
- Upload date:
- Size: 122.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34e471878e00d54d390348f22f199bed373f3d73896c9998ad479b5678001a33
|
|
| MD5 |
f1edf5184c7f086a1e88e1f88962e1de
|
|
| BLAKE2b-256 |
2e4e0f5d895d2342d7fe7e7dc97075de1696812238fa51ef6e04714fc5e5bb27
|
File details
Details for the file cypherseed-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cypherseed-0.1.0-py3-none-any.whl
- Upload date:
- Size: 118.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4969edd6d5e7e87f25d4a7264da1d8bd8581744f163ec17b2c51c2d22e67f450
|
|
| MD5 |
bf71f2ffb98c4dfcfa955c1971629f82
|
|
| BLAKE2b-256 |
240c352e3d046f72530bebb8b2ce9f76fb7b73b3be844b34e8dab1cd98c80215
|