""" Test script to demonstrate password hashing and verification """ from werkzeug.security import generate_password_hash, check_password_hash # Example: Creating a hashed password plain_password = "mySecurePassword123" hashed_password = generate_password_hash(plain_password, method='pbkdf2:sha256') print("=" * 60) print("PASSWORD HASHING DEMONSTRATION") print("=" * 60) print() print(f"Original Password: {plain_password}") print() print(f"Hashed Password: {hashed_password}") print() print(f"Hash Length: {len(hashed_password)} characters") print() print("=" * 60) print("SECURITY FEATURES") print("=" * 60) print("✓ Algorithm: PBKDF2-SHA256") print("✓ Iterations: 600,000+") print("✓ Unique salt per password") print("✓ Cannot be reversed to plain text") print("✓ Industry-standard security") print() print("=" * 60) print("PASSWORD VERIFICATION TEST") print("=" * 60) print() # Test correct password correct = check_password_hash(hashed_password, "mySecurePassword123") print(f"Testing correct password: {correct} ✓") # Test incorrect password incorrect = check_password_hash(hashed_password, "wrongPassword") print(f"Testing incorrect password: {incorrect} ✗") print() # Show that the same password produces different hashes (due to unique salts) print("=" * 60) print("UNIQUE SALT DEMONSTRATION") print("=" * 60) print() print("Hashing the same password twice produces different hashes:") print() hash1 = generate_password_hash("password123", method='pbkdf2:sha256') hash2 = generate_password_hash("password123", method='pbkdf2:sha256') print(f"Hash 1: {hash1}") print(f"Hash 2: {hash2}") print() print(f"Are they different? {hash1 != hash2}") print("Both hashes are valid and will verify correctly!") print(f"Hash 1 verifies: {check_password_hash(hash1, 'password123')}") print(f"Hash 2 verifies: {check_password_hash(hash2, 'password123')}") print()