簡単なn00b質問:ベンダーが私に送るopenssl_public_encrypt機能で暗号化されたファイルを解読するためにPHPのopenssl_private_decrypt関数の動作を複製しようとしています。私はPython 3.4を使用していますので、利用可能なライブラリはpyopensslですが、十分に低レベルなので、やりたいことを簡単に実行する方法がわかりません。おそらく非常に簡単ですが、誰かが私がしたいことの例を持っていますか?あなたがインストールすることができCryptography module、と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
:
$ 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. Windowsでのrsa暗号化opensslでの暗号化と復号化
- 2. RSA暗号化/復号化
- 3. iphoneでのRSA暗号化/復号化
- 4. DES、RSAの暗号化と復号化
- 5. OpenSSLを使用したPythonでのRSA暗号化と復号化
- 6. JavaでのRSA暗号化、PHPでの復号化
- 7. RSA暗号化/復号化の実装
- 8. OpenSSLとJSONファイルの暗号化と復号化
- 9. rsaで公開鍵だけで暗号化と復号化する方法C#
- 10. RSA暗号化JavaでのAndroidと復号化:javax.crypto.BadPaddingException:復号化エラー
- 11. AESでopensslコマンドラインツールで暗号化し、Javaで復号化する
- 12. iOSでファイルを暗号化/復号化する方法は?
- 13. JavaScript RSA暗号化とPHP
- 14. openssl C++ 3DESファイル暗号化の復号化に失敗する
- 15. C#で複数のブロックをRSA暗号化/復号化する
- 16. OpenSSL PHP RSA暗号化:クライアント側でどのライブラリを復号化するのですか?
- 17. BadPaddingException RSA暗号化とJavaでの復号化
- 18. RSA暗号化とJavaでの長いメッセージの復号化
- 19. 暗号化とストリーム経由でノード内のファイルを暗号化する
- 20. PHPスイッチ:暗号化と復号化
- 21. RSA暗号化キーを復号化できない
- 22. RSA暗号化と復号化は、opensslによる秘密鍵でのみ正しいですか?
- 23. 値のC#でRSA暗号化を行い、openSSLで復号化するとメッセージが長すぎます
- 24. RSAとAESを使用した暗号化/復号化。基準?
- 25. ファイルの暗号化と復号化
- 26. ファイルの復号化と暗号化
- 27. OpenSSLを使用した暗号化と復号化エラー0x0407106B
- 28. 暗号化と復号化
- 29. 暗号化と復号化rsa sur une image utilisant java netbeans
- 30. テキスト暗号化/復号化方法Java