| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #!/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()
|