26 lines
1.1 KiB
Python
26 lines
1.1 KiB
Python
|
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)
|