私が理解する限り、RSAを使用して信頼性やプライバシーを確保できるはずです。私の場合、私は秘密鍵でデータを暗号化し、誰でも公開鍵でそれを解読できるように真正性を保証したいと思います。データは実際には秘密ではありませんが、パブリック(およびプライベート)キーの所有者によって作成されたことを保証する必要があります。PyCryptoでRSA公開鍵を使用して復号する
PyCryptoを使用して復号化しようとすると、PyCryptoから秘密鍵エラーが発生します。私は、公開鍵ファイルへのパスでそれを呼んでいる暗号化されたデータは、私によって生成されていないと、それはPythonが、PHPで行われていなかった
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
(OpenSSHの形式インチ):コードはこれです。 PHPには、このデータを簡単に解読する関数openssl_public_decrypt
があります。
PyCryptoで公開鍵を使って解読することはできますか?
あなたはそれを逆にしました。公開鍵は暗号化に使用され、秘密鍵は復号化に使用されます。 – jchysk
公開復号化は暗号化と同じです。 'decrypted = rsakey.encrypt(raw_cipher_data、0)' – Helio
ソースが実際に秘密鍵で暗号化されていれば、データを効果的に署名したことになります。 Javaのようないくつかのツールは、これを可能にします。署名を復号化するには、公開鍵(または秘密鍵の公開部分)を使用できます。参照してください:https://stackoverflow.com/questions/48280670/pycrypto-how-to-view-raw-rsa-signature-data –