Skip to content

zazaian/ironpass

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IronPass

A powerful command-line password generator that creates the strongest possible passwords for different platforms based on their password requirements.

Features

  • Platform-specific generation: Generate passwords optimized for specific platforms (Google, GitHub, AWS, etc.)
  • Maximum strength: Automatically uses the maximum allowed length and character set for each platform
  • Unique character mode: Option to generate passwords with no repeated characters
  • Entropy calculation: Calculate and display password strength in bits of entropy
  • Flexible schema: Simple JSON-based platform configuration
  • Custom lengths: Override default maximum length with custom values
  • Standalone utility: No external dependencies required at runtime

Installation

From source

cargo build --release

The binary will be available at ./target/release/ironpass

Optionally, install it globally:

cargo install --path .

Usage

Generate a password for a platform

# Generate maximum-strength password for Google
ironpass generate --platform Google

# Generate with entropy statistics
ironpass generate --platform Google --entropy

# Generate with unique characters only (no repeats)
ironpass generate --platform Google --unique --length 50 --entropy

# Generate with custom length
ironpass generate --platform AWS --length 64

List available platforms

ironpass list

Output:

Available platforms:

  Google (max length: 100, charset size: 91)
  GitHub (max length: 72, charset size: 93)
  AWS (max length: 128, charset size: 93)
  Microsoft (max length: 256, charset size: 93)
  Generic-Strong (max length: 128, charset size: 91)

Calculate entropy for existing password

ironpass entropy "MyP@ssw0rd123"

Output:

Password Statistics:
  Length: 13 characters
  Unique characters: 12
  Entropy: 46.60 bits
  Strength: Reasonable

Platform Schema

Platforms are defined in platforms.json. Each platform specifies:

  • name: Platform identifier
  • max_length: Maximum password length allowed
  • allowed_chars: String containing all allowed characters

Example:

{
  "platforms": [
    {
      "name": "Google",
      "max_length": 100,
      "allowed_chars": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+-=[]{}|;:,.<>?/~`"
    }
  ]
}

Using a custom schema file

ironpass generate --platform MyCustomPlatform --schema-file /path/to/custom-platforms.json

Command Reference

generate

Generate a password for a specific platform.

Options:

  • -p, --platform <PLATFORM>: Platform name (required)
  • -f, --schema-file <FILE>: Path to platforms schema file (default: platforms.json)
  • -u, --unique: Only use unique characters (no repeats)
  • -l, --length <LENGTH>: Custom password length (overrides platform default)
  • -e, --entropy: Show entropy calculation and statistics

list

List all available platforms from the schema file.

Options:

  • -f, --schema-file <FILE>: Path to platforms schema file (default: platforms.json)

entropy

Calculate entropy for a given password.

Arguments:

  • <PASSWORD>: The password to analyze

Options:

  • -c, --charset-size <SIZE>: Character set size (if known, for more accurate calculation)

Understanding Entropy

Entropy measures password strength in bits. Higher is better:

  • < 28 bits: Very Weak
  • 28-36 bits: Weak
  • 36-60 bits: Reasonable
  • 60-128 bits: Strong
  • > 128 bits: Very Strong

Entropy is calculated as: password_length × log₂(charset_size)

For example:

  • A 100-character password using 91 different characters has ~607 bits of entropy
  • A 50-character password with unique characters has ~282 bits of entropy
  • A typical 13-character password with mixed case, numbers, and symbols has ~47 bits

Security Considerations

  • This tool uses Rust's rand crate with a cryptographically secure random number generator (CSRNG)
  • Generated passwords are printed to stdout - be careful in shared terminal environments
  • Statistics (when using --entropy) are printed to stderr
  • Store generated passwords in a secure password manager
  • Never reuse passwords across platforms

Examples

# Maximum strength Google password
ironpass generate -p Google -e

# Unique 91-character password (Google's charset limit)
ironpass generate -p Google -u -l 91 -e

# AWS password with default settings
ironpass generate -p AWS

# Check strength of an existing password
ironpass entropy "Tr0ub4dor&3"

# See all available platforms
ironpass list

License

MIT

About

A pure rust, no-dependency utility for generating maximum-strength passwords.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages