Как расшифровать строку (которая зашифрована Java) Python в AES / ECB / PKCS5Padding? - PullRequest
1 голос
/ 05 марта 2019

Я делаю проект django, часть которого включает в себя дешифрование загрузки json и данных внутри, которые зашифрованы java в ASE / ECB / PKCS5Padding. Поэтому я пытаюсь получить зашифрованную строку и поместить ее в скрипт Python, чтобы увидеть, можно ли расшифровать ее обратно в исходную строку. Вот код расшифровки / расшифровки в Java.

А это моя версия на питоне:

class AESCipher:
    def __init__(self):
        self.key = '9sdf3jkkjsdfUUJH'

    def encrypt(self, raw):
        raw = pad(raw)
        cipher = AES.new(self.key, AES.MODE_ECB)
        enc_str = cipher.encrypt(raw)
        str_64 = base64.b64encode(enc_str)
        return(str_64.decode())


    def decrypt(self, enc):
        cipher = AES.new(self.key, AES.MODE_ECB)
        #enc += (len(enc) % 4) * '='
        decrypt_bytes = base64.b64decode(enc)
        dec = cipher.decrypt(decrypt_bytes)
        try:
            result = \
            re.compile('[\\x00-\\x08\\x0c\\x0e-\\x1f\\n\r\t]').sub('',\
                                     dec.decode())
        except Exception:
            result = 'fail'
        return(result)

Тем не менее, он может выполнять только нормальное en / decryption, но не может расшифровать java. Я думаю, это из-за метода getSecretKey () в Java, но я не очень хорош в Java и понятия не имею, что это такое. Могу я еще спросить, возможно ли расшифровать строку, зашифрованную с помощью Java? Спасибо

...