| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #!/usr/bin/env python3
- """
- 修复密码哈希格式
- """
- import pymysql
- from urllib.parse import urlparse
- import os
- from dotenv import load_dotenv
- import hashlib
- import secrets
- load_dotenv()
- def hash_password_simple(password):
- """简单的密码哈希"""
- # 生成盐值
- salt = secrets.token_hex(16)
-
- # 使用SHA256哈希
- password_hash = hashlib.sha256((password + salt).encode()).hexdigest()
-
- return f"sha256${salt}${password_hash}"
- def fix_admin_password():
- """修复admin用户密码"""
- database_url = os.getenv('DATABASE_URL', '')
- parsed = urlparse(database_url)
- config = {
- 'host': parsed.hostname or 'localhost',
- 'port': parsed.port or 3306,
- 'user': parsed.username or 'root',
- 'password': parsed.password or '',
- 'database': parsed.path[1:] if parsed.path else 'sso_db',
- 'charset': 'utf8mb4'
- }
- try:
- conn = pymysql.connect(**config)
- cursor = conn.cursor()
-
- # 生成新的密码哈希
- new_password = "Admin123456"
- new_hash = hash_password_simple(new_password)
-
- print(f"新密码: {new_password}")
- print(f"新哈希: {new_hash}")
-
- # 更新admin用户密码
- cursor.execute(
- 'UPDATE users SET password_hash = %s WHERE username = %s',
- (new_hash, 'admin')
- )
-
- conn.commit()
-
- # 验证更新
- cursor.execute('SELECT username, password_hash FROM users WHERE username = %s', ('admin',))
- result = cursor.fetchone()
-
- if result:
- username, password_hash = result
- print(f"✅ 密码已更新")
- print(f"用户名: {username}")
- print(f"新哈希: {password_hash}")
-
- cursor.close()
- conn.close()
-
- print("\n✅ admin用户密码修复完成")
- print("用户名: admin")
- print("密码: Admin123456")
-
- except Exception as e:
- print(f'❌ 修复失败: {e}')
- if __name__ == "__main__":
- fix_admin_password()
|