web-dev-qa-db-ja.com

OpenSSL、秘密鍵で復号化

さて、暗号化されたKryptertという名前のテキストファイルがあります。秘密鍵を含むprivateという名前の鍵ファイル。出力をKlartextという名前のテキストファイルに保存します。

私はこれを理解することができないように思われるので、私は私の髪を引き裂こうとしています。

openssl rsautl -decrypt -inkey C:\private.key -in C:\Kryptert.txt -out C:\Klartext.txt

上記のコマンドは私が使用するものであり、CMDウィンドウに次の出力が表示されます。

C:\Users\Marco>openssl rsautl -decrypt -inkey C:\private.key -in C:\Kryptert.txt -out C:\Klartext.txt
Loading 'screen' into random state - done
RSA operation error
8560:error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block type is not 02:.\crypto\rsa\rsa_pk1.c:190:
8560:error:04065072:rsa routines:RSA_EAY_PRIVATE_DECRYPT:padding check failed:.\crypto\rsa\rsa_eay.c:592:

何が問題で、どうすれば修正できるかを理解してくれる人はいますか?ありがとうございました。

10
Exhausti

ここに、opensslを使用して暗号化または復号化するために必要なコマンドがあります。

復号化:

$ openssl rsautl -decrypt -in $ENCRYPTED -out $PLAINTEXT -inkey keys/privkey.pem

暗号化:

$ openssl rsautl -encrypt -in $PLAINTEXT -out $PLAINTEXT.encrypt -pubin -inkey keys/pubkey.pem

お役に立てれば! :)

25
aicastell

暗号化の場合:

openssl rsautl -encrypt -in /path/to/your/file -out /path/to/your/encrypted -pubin -inkey /path/to/your/public_key.pem

復号化の場合:

openssl rsautl -decrypt -in /path/to/your/encrypted -out /path/where/you/want/your/decrypted.txt -inkey /path/to/your/private_key.pem

注:この復号化エラーが発生した場合:RSA_EAY_PRIVATE_DECRYPT:data greater than mod lenファイルを復号化する前にこのコマンドを試してください:

cat yourEncryptedFile| base64 -D > yourEncryptedRawFile

詳細 ここ

1
Pedro Trujillo