From e4096fbc3393aaa256cc1deb85a617ecb8a91f62 Mon Sep 17 00:00:00 2001 From: Kevin Hu Date: Mon, 17 Feb 2025 18:09:11 +0800 Subject: [PATCH] Add another decrypt function. (#5043) ### What problem does this PR solve? ### Type of change - [x] New Feature (non-breaking change which adds functionality) --- api/utils/__init__.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/api/utils/__init__.py b/api/utils/__init__.py index e2163364a..37a77930f 100644 --- a/api/utils/__init__.py +++ b/api/utils/__init__.py @@ -351,6 +351,26 @@ def decrypt(line): line), "Fail to decrypt password!").decode('utf-8') +def decrypt2(crypt_text): + from base64 import b64decode, b16decode + from Crypto.Cipher import PKCS1_v1_5 as Cipher_PKCS1_v1_5 + from Crypto.PublicKey import RSA + decode_data = b64decode(crypt_text) + if len(decode_data) == 127: + hex_fixed = '00' + decode_data.hex() + decode_data = b16decode(hex_fixed.upper()) + + file_path = os.path.join( + file_utils.get_project_base_directory(), + "conf", + "private.pem") + pem = open(file_path).read() + rsa_key = RSA.importKey(pem, "Welcome") + cipher = Cipher_PKCS1_v1_5.new(rsa_key) + decrypt_text = cipher.decrypt(decode_data, None) + return (b64decode(decrypt_text)).decode() + + def download_img(url): if not url: return ""