mirror of
https://github.com/zhouxiaoka/autoclip.git
synced 2026-09-03 06:24:14 +08:00
- 修复WebSocketNotificationService.send_processing_progress方法参数不匹配问题 - 修复前端RealTimeStatus组件WebSocket消息处理逻辑 - 修复Celery Worker队列配置,确保任务正确路由到processing队列 - 修复Celery应用导入冲突,统一使用正确的celery_app配置 - 添加实时项目状态更新功能,前端无需手动刷新即可看到处理进度 - 完善系统启动脚本,修复PYTHONPATH未绑定变量错误 - 优化流水线处理逻辑,确保所有6个步骤正常执行 - 添加完整的项目文档和启动指南 测试结果: - WebSocket进度更新正常工作(16%, 33%, 100%) - 流水线处理完全正常(6个步骤全部成功) - 前端状态自动更新正常 - 项目状态正确同步到数据库
53 lines
1.4 KiB
Python
53 lines
1.4 KiB
Python
"""
|
||
加密工具
|
||
用于加密存储敏感信息如cookies
|
||
"""
|
||
|
||
import os
|
||
import base64
|
||
from cryptography.fernet import Fernet
|
||
from cryptography.hazmat.primitives import hashes
|
||
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
|
||
import logging
|
||
|
||
logger = logging.getLogger(__name__)
|
||
|
||
# 获取加密密钥
|
||
def get_encryption_key():
|
||
"""获取加密密钥"""
|
||
# 从环境变量获取密钥,如果没有则生成一个
|
||
key = os.getenv('ENCRYPTION_KEY')
|
||
if not key:
|
||
# 生成新密钥
|
||
key = Fernet.generate_key()
|
||
logger.warning("ENCRYPTION_KEY环境变量未设置,使用临时密钥。请设置环境变量以保持数据安全。")
|
||
|
||
if isinstance(key, str):
|
||
key = key.encode()
|
||
|
||
return key
|
||
|
||
def encrypt_data(data: str) -> str:
|
||
"""加密数据"""
|
||
try:
|
||
key = get_encryption_key()
|
||
f = Fernet(key)
|
||
encrypted_data = f.encrypt(data.encode())
|
||
return base64.b64encode(encrypted_data).decode()
|
||
except Exception as e:
|
||
logger.error(f"加密数据失败: {str(e)}")
|
||
raise
|
||
|
||
def decrypt_data(encrypted_data: str) -> str:
|
||
"""解密数据"""
|
||
try:
|
||
key = get_encryption_key()
|
||
f = Fernet(key)
|
||
decoded_data = base64.b64decode(encrypted_data.encode())
|
||
decrypted_data = f.decrypt(decoded_data)
|
||
return decrypted_data.decode()
|
||
except Exception as e:
|
||
logger.error(f"解密数据失败: {str(e)}")
|
||
raise
|
||
|