66 lines
2.1 KiB
Python
66 lines
2.1 KiB
Python
|
|
#!/usr/bin/env python
|
||
|
|
# -*- coding: utf-8 -*-
|
||
|
|
"""
|
||
|
|
调试卡密生成过程
|
||
|
|
"""
|
||
|
|
|
||
|
|
import sys
|
||
|
|
import os
|
||
|
|
|
||
|
|
# 添加项目路径
|
||
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
||
|
|
|
||
|
|
# 导入应用和模型
|
||
|
|
from app import create_app
|
||
|
|
from app.models.license import License
|
||
|
|
import secrets
|
||
|
|
import string
|
||
|
|
|
||
|
|
def debug_license_generation():
|
||
|
|
"""调试卡密生成过程"""
|
||
|
|
print("=== 调试卡密生成 ===")
|
||
|
|
|
||
|
|
try:
|
||
|
|
# 直接测试卡密生成逻辑,不依赖数据库查询
|
||
|
|
print("1. 测试生成单个卡密...")
|
||
|
|
chars = string.ascii_uppercase + string.digits
|
||
|
|
random_chars = ''.join(secrets.choice(chars) for _ in range(32))
|
||
|
|
|
||
|
|
# 格式化为XXXX-XXXX-XXXX-XXXX格式
|
||
|
|
formatted_key = '-'.join([
|
||
|
|
random_chars[i:i+8] for i in range(0, len(random_chars), 8)
|
||
|
|
])
|
||
|
|
|
||
|
|
print(f" 生成的卡密: {formatted_key}")
|
||
|
|
|
||
|
|
# 验证格式
|
||
|
|
parts = formatted_key.split('-')
|
||
|
|
print(f" 格式检查: {len(parts)} 部分")
|
||
|
|
for i, part in enumerate(parts):
|
||
|
|
print(f" 第{i+1}部分: {part} ({len(part)} 字符)")
|
||
|
|
|
||
|
|
if len(parts) == 4 and all(len(part) == 8 for part in parts):
|
||
|
|
print(" ✓ 格式正确")
|
||
|
|
else:
|
||
|
|
print(" ✗ 格式错误")
|
||
|
|
|
||
|
|
# 测试卡密验证
|
||
|
|
print("\n2. 测试卡密验证...")
|
||
|
|
from app.utils.validators import LicenseValidator
|
||
|
|
validator = LicenseValidator()
|
||
|
|
is_valid = validator.validate_license_key(formatted_key)
|
||
|
|
print(f" 验证结果: {'通过' if is_valid else '失败'}")
|
||
|
|
|
||
|
|
# 测试格式化函数
|
||
|
|
print("\n3. 测试格式化函数...")
|
||
|
|
formatted_again = validator.format_license_key("ABCDEFGHIJKLMNOPQRSTUVWXZY12345678")
|
||
|
|
print(f" 原始卡密: ABCDEFGHIJKLMNOPQRSTUVWXZY12345678")
|
||
|
|
print(f" 格式化后: {formatted_again}")
|
||
|
|
|
||
|
|
except Exception as e:
|
||
|
|
print(f" ✗ 发生错误: {e}")
|
||
|
|
import traceback
|
||
|
|
traceback.print_exc()
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
debug_license_generation()
|