mirror of
https://git.mirrors.martin98.com/https://github.com/infiniflow/ragflow.git
synced 2025-04-22 06:00:00 +08:00

### What problem does this PR solve? The encryption should first perform base64 encoding and then encrypt, to maintain consistency with the frontend #1620 ### Type of change - [x] Refactoring
25 lines
749 B
Python
25 lines
749 B
Python
import base64
|
|
import os
|
|
import sys
|
|
from Cryptodome.PublicKey import RSA
|
|
from Cryptodome.Cipher import PKCS1_v1_5 as Cipher_pkcs1_v1_5
|
|
from api.utils import decrypt, file_utils
|
|
|
|
|
|
def crypt(line):
|
|
file_path = os.path.join(
|
|
file_utils.get_project_base_directory(),
|
|
"conf",
|
|
"public.pem")
|
|
rsa_key = RSA.importKey(open(file_path).read(),"Welcome")
|
|
cipher = Cipher_pkcs1_v1_5.new(rsa_key)
|
|
password_base64 = base64.b64encode(line.encode('utf-8')).decode("utf-8")
|
|
encrypted_password = cipher.encrypt(password_base64.encode())
|
|
return base64.b64encode(encrypted_password).decode('utf-8')
|
|
|
|
|
|
if __name__ == "__main__":
|
|
pswd = crypt(sys.argv[1])
|
|
print(pswd)
|
|
print(decrypt(pswd))
|