RAGflow/management/server/utils.py

26 lines
1.1 KiB
Python
Raw Normal View History

2025-03-28 22:45:42 +08:00
import uuid
import base64
from Cryptodome.PublicKey import RSA
from Cryptodome.Cipher import PKCS1_v1_5
from werkzeug.security import generate_password_hash
# 生成随机的 UUID 作为 id
def generate_uuid():
return str(uuid.uuid4()).replace("-", "")
# RSA 加密密码
def rsa_psw(password: str) -> str:
pub_key = """-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArq9XTUSeYr2+N1h3Afl/z8Dse/2yD0ZGrKwx+EEEcdsBLca9Ynmx3nIB5obmLlSfmskLpBo0UACBmB5rEjBp2Q2f3AG3Hjd4B+gNCG6BDaawuDlgANIhGnaTLrIqWrrcm4EMzJOnAOI1fgzJRsOOUEfaS318Eq9OVO3apEyCCt0lOQK6PuksduOjVxtltDav+guVAA068NrPYmRNabVKRNLJpL8w4D44sfth5RvZ3q9t+6RTArpEtc5sh5ChzvqPOzKGMXW83C95TxmXqpbK6olN4RevSfVjEAgCydH6HN6OhtOQEcnrU97r9H0iZOWwbw3pVrZiUkuRD1R56Wzs2wIDAQAB
-----END PUBLIC KEY-----"""
rsa_key = RSA.import_key(pub_key)
cipher = PKCS1_v1_5.new(rsa_key)
encrypted_data = cipher.encrypt(base64.b64encode(password.encode()))
return base64.b64encode(encrypted_data).decode()
# 加密密码
def encrypt_password(raw_password: str) -> str:
base64_password = base64.b64encode(raw_password.encode()).decode()
return generate_password_hash(base64_password)