#!/usr/bin/env python3 """ 检查用户数据 """ import pymysql from urllib.parse import urlparse import os from dotenv import load_dotenv load_dotenv() def check_user_data(): """检查用户数据""" 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() # 查询admin用户 cursor.execute('SELECT username, password_hash FROM users WHERE username = %s', ('admin',)) result = cursor.fetchone() if result: username, password_hash = result print(f'用户名: {username}') print(f'密码哈希: {password_hash}') print(f'哈希格式: {password_hash[:20]}...') # 检查哈希格式 if password_hash.startswith("sha256$"): parts = password_hash.split("$") print(f'哈希部分数量: {len(parts)}') if len(parts) == 3: print(f'盐值: {parts[1]}') print(f'哈希值: {parts[2][:20]}...') else: print('❌ 哈希格式错误') else: print('❌ 哈希格式不正确,应该以sha256$开头') else: print('❌ 未找到admin用户') cursor.close() conn.close() except Exception as e: print(f'❌ 数据库连接失败: {e}') if __name__ == "__main__": check_user_data()