A powerful command-line password generator that creates the strongest possible passwords for different platforms based on their password requirements.
- 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
cargo build --releaseThe binary will be available at ./target/release/ironpass
Optionally, install it globally:
cargo install --path .# 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 64ironpass listOutput:
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)
ironpass entropy "MyP@ssw0rd123"Output:
Password Statistics:
Length: 13 characters
Unique characters: 12
Entropy: 46.60 bits
Strength: Reasonable
Platforms are defined in platforms.json. Each platform specifies:
name: Platform identifiermax_length: Maximum password length allowedallowed_chars: String containing all allowed characters
Example:
{
"platforms": [
{
"name": "Google",
"max_length": 100,
"allowed_chars": "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+-=[]{}|;:,.<>?/~`"
}
]
}ironpass generate --platform MyCustomPlatform --schema-file /path/to/custom-platforms.jsonGenerate 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 all available platforms from the schema file.
Options:
-f, --schema-file <FILE>: Path to platforms schema file (default: platforms.json)
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)
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
- This tool uses Rust's
randcrate 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
# 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 listMIT