据我了解,我应该能够使用 RSA 来确保真实性或隐私,如我所愿。就我而言,我想确保真实性,因此我使用私钥加密数据并允许任何人使用公钥对其进行解密。这些数据并不是真正的秘密,但我需要保证它是由公钥(和私钥)的所有者创建的。
当我尝试使用 PyCrypto 解密时,我从 PyCrypto 收到No private key错误。代码是这样的:
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 格式)来调用它。加密的数据不是由我生成的,它不是用 Python 而是用 PHP 完成的。在 PHP 中有一个openssl_public_decrypt
函数可以轻松解密这些数据。
是否可以使用 PyCrypto 的公钥进行解密?