내가 이해하는 한 RSA를 사용하여 신뢰성 또는 개인 정보를 보호 할 수 있어야합니다. 필자는 개인 키로 데이터를 암호화하고 누구나 공개 키를 사용하여 데이터를 해독 할 수 있도록 확실성을 보장하고자합니다. 데이터는 실제 비밀은 아니지만 공용 (개인) 키의 소유자가 생성했음을 보장해야합니다.PyCrypto로 RSA 공개 키를 사용하여 암호 해독
PyCrypto를 사용하여 암호 해독하려고하면 개인 키가 없습니다. PyCrypto에서 오류가 발생했습니다. 코드는 다음과 같습니다
def _decrypt_rsa(decrypt_key_file, cipher_text):
from Crypto.PublicKey import RSA
from base64 import b64decode
key = open(decrypt_key_file, "r").read()
rsakey = RSA.importKey(key)
raw_cipher_data = b64decode(cipher_text)
decrypted = rsakey.decrypt(raw_cipher_data)
return decrypted
내가 공개 키 파일의 경로로 전화 해요 암호화 된 데이터에 날에 의해 생성되지 않고 파이썬하지만 PHP로 수행되지 않았다 (OpenSSH의 형식.). PHP에서는이 데이터를 쉽게 해독 할 수있는 openssl_public_decrypt
함수가 있습니다.
PyCrypto를 사용하여 공개 키를 사용하여 암호를 해독 할 수 있습니까?
귀하는 반대입니다. 공개 키는 암호화에 사용되며 개인 키는 암호 해독에 사용됩니다. – jchysk
공개 decrypt는 encrypt와 동일합니다. 문제는 다음과 같이 해결할 수 있습니다 :'decrypted = rsakey.encrypt (raw_cipher_data, 0)' – Helio
소스가 실제로 개인 키로 암호화되어 있다면, 그들은 효과적으로 데이터에 서명했습니다. Java와 같은 일부 도구를 사용하면이 작업을 수행 할 수 있습니다. 서명을 해독하려면 공개 키 (또는 개인 키의 공용 부분)를 사용할 수 있습니다. 참조 : https://stackoverflow.com/questions/48280670/pycrypto-how-to-view-raw-rsa-signature-data –