Back to battles
easyupcoming

Password Generator

Generate secure passwords with customizable rules and strength analysis.

20 min limit0 participants
javascriptsecurityhtml
PRD
# Password Generator PRD

## Overview
Build a password generator that creates secure passwords with customizable rules, provides strength analysis with entropy calculation, and supports multiple generation modes.

## Requirements
- Configurable password length from 4 to 128 characters via slider and number input
- Toggle inclusion of uppercase letters, lowercase letters, numbers, and symbols
- Option to exclude ambiguous characters (0/O, l/1/I)
- Custom character exclusion input (user specifies characters to never include)
- Password strength meter displaying weak, fair, strong, or very strong
- Entropy calculation displayed in bits (e.g., "78.4 bits")
- Generate multiple passwords at once in batch mode (up to 10)
- One-click copy button for each generated password
- Password history showing last 20 generated passwords (stored in sessionStorage only)
- Pronounceable password mode (alternating consonants and vowels)
- Passphrase mode generating random word combinations (include a built-in word list)
- Character distribution preview showing count of each character type
- Bulk generate and export passwords as a downloadable text file
- Keyboard shortcut to regenerate (Ctrl+G or Cmd+G)

## Tech Stack
- HTML, CSS, JavaScript (vanilla or any framework)
- Use crypto.getRandomValues() for secure randomness

## Scoring Criteria
- **Functional (40%)**: Password generation works, strength meter accurate, all toggles function
- **Quality (20%)**: Cryptographically secure randomness, clean code, handles edge cases
- **Fidelity (25%)**: All features present including passphrase mode, entropy display, batch export
- **Speed (15%)**: Time bonus

Battle Stats

Time Limit20 min
Participants0
Statusupcoming

Rules

  • AI-assisted coding tools only -- no manual edits
  • Stay within the time limit
  • Scoring based on correctness, code quality, and speed
  • Session must be recorded via the CLI