简单的n00b问题:我试图在PHP中复制openssl_private_decrypt函数的行为来解密供应商发送的文件,该文件通过openssl_public_encrypt函数加密。我正在使用python 3.4,因此我可以看到的唯一一个库是pyopenssl,但它足够低,我无法轻松找到如何执行我想要的操作。这可能很简单,但是没有人有我想做的例子吗?如何用pyopenssl解密RSA加密文件(通过PHP和OpenSSL)?
0
A
回答
0
感谢@mnistic它开始工作,虽然有一些修改。这里是最后的工作代码(你必须牢记的openssl_private_decrypt默认值):
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import padding
# It's critical that the file be opened in mode "rb"!
with open("private.key", 'rb') as key_file:
private_key = serialization.load_pem_private_key(key_file.read(), password=None, backend=default_backend())
with open('encrypted_file', 'rb') as encrypted_file:
ciphertext = encrypted_file.read()
plaintext = private_key.decrypt(ciphertext, padding.PKCS1v15())
请注意,ciphertext
需要比键的最大块大小短(这是比特数RSA的关键字除以8)。希望对未来的Google员工有所帮助!
1
随着Cryptography module,您可以与安装:
$ pip install cryptography
假设你有存储在一个名为“路径/到/ key.pem”文件中的私钥,首先加载私钥:
from cryptography.hazmat.primitives import serialization
with open("path/to/key.pem", "rb") as key_file:
private_key = serialization.load_pem_private_key(
key_file.read(),
password=None,
backend=default_backend()
)
然后你解密:
plaintext = private_key.decrypt(
ciphertext,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA1()),
algorithm=hashes.SHA1(),
label=None
)
)
相关问题
- 1. Android:如何用RSA密钥解密一个openssl加密文件?
- 2. 在Windows加密和解密在openssl rsa加密
- 3. 是RSA加密和解密只用私钥通过openssl,是否正确?
- 4. Openssl EVP从文件加密和解密
- 5. RSA加密,解密PHP
- 6. RSA解密加密++在PHP
- 7. RSA Android加密/ RSA PHP解密
- 8. RSA:解密openSSL证书
- 9. RSA加密/解密
- 10. 如何解密用RSA加密的块?
- 11. RSA加密用Java/.NET和解密.NET
- 12. RAW RSA使用Crypto ++加密和解密
- 13. RSA加密和解密使用X509certificate2
- 14. 加密和解密使用RSA OAEP
- 15. 文件RSA解密
- 16. 如何使用RSA/AES加密/解密较大的文件
- 17. RSA加密在PHP中解密.NET
- 18. RSA和AES解密和加密问题
- 19. AES加密在PHP中的OpenSSL解密
- 20. OpenSSL PHP RSA加密:在客户端使用哪个库进行解密?
- 21. Java RSA加密 - 解密.NET
- 22. 如何使用openSSL和公钥加密和解密xml
- 23. 如何解密CryptoJS中的文件,通过JAVA用AES加密
- 24. php mcrypt - 解密和加密文件?
- 25. OpenSSL的解密JSBN加密
- 26. 如何使用rsa c仅公钥进行加密和解密#
- 27. 加密和解密文件
- 28. 文件加密和解密
- 29. 我如何使用PEM加密和解密数据 - OPENSSL,C,BIO
- 30. Xcode Openssl需要RSA解密功能