scripts/generate_password_hash.py
Rama main · réplica de lectura del repositorio original.
#!/usr/bin/env python3
"""
Helper script to generate bcrypt password hash for CMS_PASSWORD_HASH environment variable.
Usage:
python3 generate_password_hash.py "your-password"
Or run interactively:
python3 generate_password_hash.py
"""
import sys
import getpass
try:
import bcrypt
except ImportError:
print("Error: bcrypt is not installed. Install it with: pip install bcrypt")
sys.exit(1)
def generate_hash(password):
"""Generate bcrypt hash for a password."""
salt = bcrypt.gensalt()
hashed = bcrypt.hashpw(password.encode('utf-8'), salt)
return hashed.decode('utf-8')
if __name__ == "__main__":
if len(sys.argv) > 1:
password = sys.argv[1]
else:
password = getpass.getpass("Enter password: ")
password_confirm = getpass.getpass("Confirm password: ")
if password != password_confirm:
print("Error: Passwords do not match!")
sys.exit(1)
if not password:
print("Error: Password cannot be empty!")
sys.exit(1)
hash_value = generate_hash(password)
print("\n" + "="*70)
print("Generated bcrypt hash:")
print("="*70)
print(hash_value)
print("="*70)
print("\nAdd this to your .env file:")
print(f"CMS_PASSWORD_HASH={hash_value}")
print("\nNote: If CMS_PASSWORD_HASH is set, CMS_PASSWORD will be ignored.")