From b2e47e75a231baf5a7beca476256ab3d94e76c46 Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期二, 01 四月 2025 10:08:15 +0800 Subject: [PATCH] code加密 --- app/service/auth.py | 51 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 36 insertions(+), 15 deletions(-) diff --git a/app/service/auth.py b/app/service/auth.py index d32d8db..3c726fa 100644 --- a/app/service/auth.py +++ b/app/service/auth.py @@ -1,8 +1,9 @@ +import os.path import re import uuid +import base64 from datetime import datetime, timedelta from typing import Type -from uuid import uuid4 from jwt import encode, decode, exceptions from passlib.context import CryptContext @@ -11,16 +12,17 @@ from Log import logger from app.config.config import settings -from app.config.const import RAGFLOW, BISHENG, DIFY, USER_STATSU_DELETE +from app.config.const import USER_STATSU_DELETE, APP_SERVICE_PATH from app.models import RoleModel, GroupModel, TokenModel from app.models.user_model import UserModel, UserAppModel -# from app.service.ragflow import RagflowService -# from app.service.service_token import get_new_token -from app.service.v2.app_register import AppRegisterDao + +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import serialization +from cryptography.hazmat.primitives.asymmetric import padding SECRET_KEY = settings.secret_key ALGORITHM = "HS256" -ACCESS_TOKEN_EXPIRE_MINUTES = 3000 +ACCESS_TOKEN_EXPIRE_MINUTES = 24*60 pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") @@ -77,23 +79,21 @@ try: hashed_password = pwd_context.hash(password) db_user = UserModel(username=username, hashed_password=hashed_password, email=email, sync_flag=sync_flag) - pwd = db_user.encrypted_password(app_password) - db_user.password = pwd + # pwd = db_user.encrypted_password(app_password) + # db_user.password = pwd db_user.roles = [db.query(RoleModel).filter(RoleModel.role_type == 2).first()] db_user.groups = [db.query(GroupModel).filter(GroupModel.group_type == 2).first()] db.add(db_user) db.commit() db.refresh(db_user) + ''' user_id = db_user.id for k, v in register_dict.items(): await UserAppDao(db).update_and_insert_data(v.get("name"), pwd, v.get("email"), user_id, str(v.get("id")), k) - + ''' except Exception as e: logger.error(e) - # db.roolback() - if user_id: - db.query(UserModel).filter(UserModel.id == user_id).delete() - db.commit + db.rollback() return False return sync_flag @@ -109,7 +109,7 @@ return False return True - +""" async def update_user_info(db, user_id): app_register = AppRegisterDao(db).get_apps() register_dict = {} @@ -143,6 +143,8 @@ # db.refresh(db_user) # is_sava = await save_register_user(db, user.username, user.password, user.email, register_dict) +""" + class UserAppDao: def __init__(self, db: Session): @@ -196,6 +198,25 @@ return self.db.query(UserAppModel).filter_by(user_id=user_id).all() - +async def password_rsa(password): + with open(os.path.join(APP_SERVICE_PATH, "pom/private_key.pem"), "rb") as key_file: + private_key = serialization.load_pem_private_key( + key_file.read(), + password=None, # 濡傛灉绉侀挜鍔犲瘑锛岃鎻愪緵瀵嗙爜 + backend=default_backend() + ) + # Base64 瑙g爜 + try: + # 瑙e瘑娑堟伅 + ciphertext = base64.b64decode(password) + # 浣跨敤 PKCS#1 v1.5 濉厖瑙e瘑 + plaintext = private_key.decrypt( + ciphertext, + padding.PKCS1v15() # 鏀逛负 PKCS#1 v1.5 濉厖 + ) + return plaintext.decode() + except Exception as e: + print(e) + return "" -- Gitblit v1.8.0