check_user.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #!/usr/bin/env python3
  2. """
  3. 检查用户数据
  4. """
  5. import pymysql
  6. from urllib.parse import urlparse
  7. import os
  8. from dotenv import load_dotenv
  9. load_dotenv()
  10. def check_user_data():
  11. """检查用户数据"""
  12. database_url = os.getenv('DATABASE_URL', '')
  13. parsed = urlparse(database_url)
  14. config = {
  15. 'host': parsed.hostname or 'localhost',
  16. 'port': parsed.port or 3306,
  17. 'user': parsed.username or 'root',
  18. 'password': parsed.password or '',
  19. 'database': parsed.path[1:] if parsed.path else 'sso_db',
  20. 'charset': 'utf8mb4'
  21. }
  22. try:
  23. conn = pymysql.connect(**config)
  24. cursor = conn.cursor()
  25. # 查询admin用户
  26. cursor.execute('SELECT username, password_hash FROM users WHERE username = %s', ('admin',))
  27. result = cursor.fetchone()
  28. if result:
  29. username, password_hash = result
  30. print(f'用户名: {username}')
  31. print(f'密码哈希: {password_hash}')
  32. print(f'哈希格式: {password_hash[:20]}...')
  33. # 检查哈希格式
  34. if password_hash.startswith("sha256$"):
  35. parts = password_hash.split("$")
  36. print(f'哈希部分数量: {len(parts)}')
  37. if len(parts) == 3:
  38. print(f'盐值: {parts[1]}')
  39. print(f'哈希值: {parts[2][:20]}...')
  40. else:
  41. print('❌ 哈希格式错误')
  42. else:
  43. print('❌ 哈希格式不正确,应该以sha256$开头')
  44. else:
  45. print('❌ 未找到admin用户')
  46. cursor.close()
  47. conn.close()
  48. except Exception as e:
  49. print(f'❌ 数据库连接失败: {e}')
  50. if __name__ == "__main__":
  51. check_user_data()