Мне предоставили данные, которые были зашифрованы RSA приложением Java и открытым ключом RSA в формате DER.Я написал простой Python-скрипт, использующий pycrypto, для дешифрования данных, однако вывод содержит как зашифрованный текст, так и то, что я ищу.Это довольно неопрятно и не подходит для дальнейшей обработки.
Исходная строка, и мой ожидаемый результат будет примерно таким:
elem:1234567890:0987654321
Владельцы приложения, зашифровавшего данные, сказали мне
- Декодировать строку из Base64
- Расшифровать строку, используя предоставленный мне закрытый ключ (формат DER)
Мой скрипт на Python выглядит примерно так:
from Crypto.PublicKey import RSA
import base64
import sys
import ast
def decode_rsa(encryptedString, key_path):
key = RSA.importKey(open(key_path).read())
deocdedString = base64.b64decode(encryptedString)
decrpytedString = key.decrypt(deocdedString)
return decrpytedString
print decode_rsa(sys.argv[1], sys.argv[2])
Но когда я запускаю код, я получаю:
python decryptRSA.py Hh6+rJdFA0SPWvbLU8gxbrZXTnYXv3M/XlSU2IHgfGvIMXckrJk/3w7OSjadhNeyIHqzfXNXRexn721lmCh7QZbGXB/cKzuEDr9pAZU6kbrc1BWDLkTuOC5e+vAcV21sebuYQUyWjGGkuMrTtXw9nlT0+h9/GAzFS7wVTFE859w= private_key.der
uB▒#▒▒▒{4elem:1234567890:0987654321&i▒_+▒▒,▒I%▒▒▒▒▒▒(d>
Как видите, мне нужно то, что есть, но есть и другие странные персонажи, возвращающиеся тоже.