Add password hash fix utility
- Created fix_password.py to repair corrupted admin password hash - Addresses Argon2 InvalidHash error in login
This commit is contained in:
55
fix_password.py
Normal file
55
fix_password.py
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Fix corrupted admin password hash in config.json
|
||||
"""
|
||||
|
||||
import json
|
||||
from argon2 import PasswordHasher
|
||||
import getpass
|
||||
|
||||
def fix_admin_password():
|
||||
"""Fix the corrupted admin password hash"""
|
||||
|
||||
print("Current admin password hash appears to be corrupted.")
|
||||
print("Let's generate a new one...")
|
||||
|
||||
# Get new password
|
||||
password = getpass.getpass("Enter new admin password: ")
|
||||
confirm = getpass.getpass("Confirm password: ")
|
||||
|
||||
if password != confirm:
|
||||
print("Passwords don't match!")
|
||||
return
|
||||
|
||||
# Generate new hash
|
||||
ph = PasswordHasher()
|
||||
new_hash = ph.hash(password)
|
||||
|
||||
# Load current config
|
||||
try:
|
||||
with open('config.json', 'r') as f:
|
||||
config = json.load(f)
|
||||
except Exception as e:
|
||||
print(f"Error reading config.json: {e}")
|
||||
return
|
||||
|
||||
# Update the password hash
|
||||
if 'admin' not in config:
|
||||
config['admin'] = {}
|
||||
|
||||
config['admin']['password_hash'] = new_hash
|
||||
|
||||
# Save config
|
||||
try:
|
||||
with open('config.json', 'w') as f:
|
||||
json.dump(config, f, indent=2)
|
||||
|
||||
print("\nPassword hash updated successfully!")
|
||||
print(f"New hash: {new_hash}")
|
||||
print("\nRestart the application for changes to take effect.")
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error saving config.json: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
fix_admin_password()
|
||||
Reference in New Issue
Block a user