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.
Metadata
Release files for cypherseed 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cypherseed-0.1.1.tar.gz | 122.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cypherseed-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 241.4 kB
Release files / cypherseed-0.1.1.tar.gz
| Download URL | cypherseed-0.1.1.tar.gz |
|---|---|
| Size | 122.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6cd9eb267afc045ad0552c3c643ce77c0ad2210f705fc10acb24f0fff1c63a71
|
|
BLAKE2b-256 checksum How to use checksums |
7e7f0d6e4dbca93ca5471da01087dbf1f75dea367b4516cf6f7b2a699acd169b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Release files / cypherseed-0.1.1-py3-none-any.whl
| Download URL | cypherseed-0.1.1-py3-none-any.whl |
|---|---|
| Size | 118.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cac5e62cfac9798f14027157595ace53f554b3294e90b5b04bf0bc0f86f7599c
|
|
BLAKE2b-256 checksum How to use checksums |
cf44e19baefbe0d5c3804c9c52a4494d87a30467c1b7bd3da7b7cf5ad2e7e176
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|