A Flask-based web application for analyzing password strength and visualizing password hashes with client-side analysis by default.
This application implements a 100% client-side privacy model where:
- All analysis happens in your browser - your password never leaves your device
- No server transmission - passwords are never sent to any server
- Full functionality available client-side - entropy calculation, pattern detection, and crack time estimation
- Complete privacy - your data stays on your device
- Security: Your passwords are never transmitted over the network
- Privacy: No server logs or data collection
- Trust: Recruiters and security professionals immediately recognize this as best practice
- Transparency: Complete client-side processing with no data transmission
- Entropy Calculation: Mathematical password strength analysis
- Pattern Detection: Identifies common weak patterns
- Crack Time Estimation: Multiple attacker profile scenarios
- Character Type Analysis: Identifies missing character types
- Strength Rating: Weak/Medium/Strong/Very Strong classification
- bcrypt Hashing: Configurable rounds (4-31) with realistic timing simulation
- Argon2 Hashing: Memory-hard function with configurable memory, iterations, and parallelism
- scrypt Hashing: CPU/memory-hard function with configurable N, r, p parameters
- Performance Benchmarking: Comprehensive testing across different parameter combinations
- Attack Resistance Analysis: Estimates resistance against different attacker profiles
- Visual Performance Charts: Interactive charts showing hashing performance comparisons
- Clone the repository:
git clone <repository-url>
cd password-hash-visualizer- Create virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Run the application:
python app.py- Open your browser:
http://127.0.0.1:5000
password-hash-visualizer/
├── app.py # Flask application
├── requirements.txt # Python dependencies
├── static/
│ └── js/
│ └── password-analyzer.js # Client-side analysis engine
├── templates/
│ └── index.html # Main application interface
├── utils/
│ ├── entropy.py # Server-side entropy calculations
│ ├── common_words.txt # Common password patterns
└── README.md # This file
- Pure JavaScript - no external dependencies for core analysis
- Entropy Calculation - mathematical password strength assessment
- Pattern Detection - identifies common weak patterns
- Crack Time Estimation - multiple attacker scenarios
- Local Storage - no data transmission
- Flask Backend - Python web framework for serving the application
- Client-Side JavaScript - Pure browser-based analysis engine
- File-based Pattern Detection - easily maintainable word lists
- Advanced Entropy Analysis - comprehensive security metrics
- Enter your password in the form
- Click "Analyze Locally (Client-Side)"
- View comprehensive analysis without sending data to servers
- Navigate to the "Hashing Sandbox" tab
- Enter a password to hash
- Select algorithm (bcrypt, Argon2, or scrypt)
- Configure parameters using the sliders
- Click "Generate Hash" to create a hash with timing analysis
- Click "Run Benchmark" to test multiple configurations
- View performance charts and attack resistance analysis
- No Network Transmission - passwords stay in browser
- Local Processing - all analysis happens locally
- No Server Logs - no server-side password storage
- Immediate Results - no network latency
- Clear Indication - shows 100% client-side analysis
- Privacy-First Design - all analysis happens locally
- Password Analysis - basic entropy and strength analysis
- Crack Time Estimator - advanced attacker profile analysis
- Visual Charts - interactive data visualization
- Responsive Design - works on all devices
- Instant Results - no network requests required
- Offline Capable - works without internet connection
- Low Resource Usage - efficient JavaScript algorithms
- Responsive UI - smooth user experience
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Privacy Notice: This application is designed with privacy-first principles. Your passwords never leave your device - all analysis happens 100% client-side.