/cypherseed

Simple high-entropy passphrase creation tool.

Primary LanguagePythonMIT LicenseMIT

cypherseed

Cypherseed is a simple high-entropy passphrase creation tool that uses mulitple wordlists to generate secure and memorable passphrases.

Features

  • Generate high-entropy passphrases
  • Customizable word count, word length, and inclusion of numbers/symbols
  • Supports multiple wordlists
  • Calculates passphrase strength in bits
  • Easily update and filter wordlists

Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/cypherseed.git
    cd cypherseed
  2. (Optional) Create and activate a virtual environment:

    python3 -m venv venv
    source venv/bin/activate
  3. Install the required dependencies:

    pip install -r requirements.txt

Usage

Generate a Passphrase

To generate a passphrase, run:

./cypherseed.py <word_count> [--wordlist <wordlist_name>] [--min-length <min_length>] [--max-length <max_length>] [--include-numbers] [--include-symbols]
<word_count>: Number of words in the passphrase (required)
--wordlist: Name of the wordlist to use (default: default)
--min-length: Minimum length of each word
--max-length: Maximum length of each word
--include-numbers: Include numbers in the passphrase
--include-symbols: Include symbols in the passphrase

Example:

./cypherseed.py 7 --wordlist eff_short_wordlist.txt --min-length 5 --max-length 8 --include-numbers --include-symbols

Calculate Passphrase

To calculate the strength of a passphrase, use:

./scripts/calculate_strength.py <word_count> <wordlist_size>
  • <word_count>: Number of words in the passphrase (required)
  • <wordlist_size>: Number of words in the wordlist (required)

Example:

./scripts/calculate_strength.py 4 5000

Update and Manage Wordlists

To download and filter wordlists, use:

./scripts/update_wordlists.py [--download <URL>] [--source <source_path>] [--destination <destination_path>]
  • --download: URL to download a new wordlist
  • --source: Source wordlist file path for filtering
  • --destination: Destination file path for the updated wordlist

Example:

./scripts/update_wordlists.py --download https://example.com/wordlist.txt --destination cypherseed/wordlists/new_wordlist.txt
./scripts/update_wordlists.py --source cypherseed/wordlists/english.txt --destination cypherseed/wordlists/filtered_wordlist.txt