OpenSSL,使用私钥解密

Exh*_*sti 8 encryption openssl cryptography

好的,我有一个名为Kryptert的文本文件已加密.使用私钥命名为private的密钥文件.我希望输出位于名为Klartext的文本文件中.

我准备撕掉我的头发,因为我似乎无法解决这个问题.

openssl rsautl -decrypt -inkey C:\private.key -in C:\Kryptert.txt -out C:\Klartext.txt
Run Code Online (Sandbox Code Playgroud)

上面的命令是我使用的,我在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:
Run Code Online (Sandbox Code Playgroud)

任何人都能帮助我理解错误,以及如何解决它?谢谢.

aic*_*ell 22

在这里,您可以使用openssl加密或解密所需的命令:

解密:

$ openssl rsautl -decrypt -in $ENCRYPTED -out $PLAINTEXT -inkey keys/privkey.pem
Run Code Online (Sandbox Code Playgroud)

加密:

$ openssl rsautl -encrypt -in $PLAINTEXT -out $PLAINTEXT.encrypt -pubin -inkey keys/pubkey.pem
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!:)


Ped*_*llo 11

对于加密:

openssl rsautl -encrypt -in /path/to/your/file -out /path/to/your/encrypted -pubin -inkey /path/to/your/public_key.pem
Run Code Online (Sandbox Code Playgroud)

对于解密:

openssl rsautl -decrypt -in /path/to/your/encrypted -out /path/where/you/want/your/decrypted.txt -inkey /path/to/your/private_key.pem
Run Code Online (Sandbox Code Playgroud)

注意:如果您遇到此解密错误:请RSA_EAY_PRIVATE_DECRYPT:data greater than mod len 在解密文件之前尝试此命令:

cat yourEncryptedFile| base64 -D > yourEncryptedRawFile
Run Code Online (Sandbox Code Playgroud)

更多信息在这里

  • 您必须使用带有小写“-d”的base64命令,大写“-D”无效 (5认同)