Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Openssl 将.pem转换为缓冲区并解密_Openssl_Aes_Rsa - Fatal编程技术网

Openssl 将.pem转换为缓冲区并解密

Openssl 将.pem转换为缓冲区并解密,openssl,aes,rsa,Openssl,Aes,Rsa,我正在研究一个专有的AES代码。但同时,我使用OpenSSL进行编码。我使用Open SSL的以下命令对RSA密钥进行了编码: openssl genrsa -out key.pem 1024 这给了我一个带有“开始”和“结束”轶事的key.pem文件。我已使用以下命令对文件进行编码: openssl enc -aes-128-cbc -salt -in file.txt -out file.enc -pass file:./key.pem 我想用我的代码解码这个文件。我正在读取缓冲区中的密

我正在研究一个专有的AES代码。但同时,我使用OpenSSL进行编码。我使用Open SSL的以下命令对RSA密钥进行了编码:

openssl genrsa -out key.pem 1024
这给了我一个带有“开始”和“结束”轶事的
key.pem
文件。我已使用以下命令对文件进行编码:

openssl enc -aes-128-cbc -salt -in file.txt -out file.enc -pass file:./key.pem
我想用我的代码解码这个文件。我正在读取缓冲区中的密钥文件,并尝试使用AES库进行解码,但失败了。 此外,我还尝试使用openssl解码命令进行相同的实验,但也失败了

成功解码:

openssl enc -d -aes-128-cbc -in file.enc -out file.txt -pass file:./key.pem
解码失败(将key.pem文件的内容作为命令行中的缓冲区):


我想知道如何在缓冲区中保存.pem文件,以便成功解码?

您在这里实际做的是使用RSA密钥,而不是用于RSA加密或解密,而是作为密码。 然后OpenSSL将使用密钥派生方案从“密码”创建AES密钥,并使用该密钥加密文本文件

我想这并不是您真正想要做的(例如,没有必要为此使用RSA密钥),但是如果您的主要问题是如何使用缓冲区将文件内容传递给OpenSSL,您应该查阅OpenSSL文档的一节。选项
-pass stdin
参数意味着您可以在进程的标准输入流中传递“密码”

openssl enc -d -aes-128-cbc -in file.enc -out file.txt -pass pass:"-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQDHYfNAzVcM8OVxUIF/Yek/ZvhRGHJIjbcWO/vVWUDJWzKCC2dP
KSeBnSRdFTjGKmowOUxpiKXdpKekc2CCRNiwjTykoNhm9K+un2yoj7pgtMoH1R4g
y8rviea3kXQGxAaHq5mi2XGZE7/LlEhEr7B/5UcntrU9B6sXXn0Pa9iRAQIDAQAB
AoGAf4hn0EuIIv7zxEd6jcBTMfrrWvQIJeB/+/jiXNV6W1G6PPSOYFQysPWTDPdG
GXuH8NC1z8tYTS3FDau/T5Q6BZM/T4/vIwjbLZfa1UpmzXB08kpUliUDwSZ6W4Be
uuZWyqvevqKBn/TO8DUfd684tL3O4m8q9o+n9JtqjaVYFAECQQDmFj6GfL6NdUZa
RKJVC/8WbAt/FKlkwIpXsKWD600Fj59oDC0ue9/hth9r3bCjPU1tAEy7Gfltd4bm
Fa7YbPL9AkEA3dZ0eI7v+c3P6/5R0yHsnZIlYPBBHWeSqp4FlASmj9i1cD8IOZ1g
7JKhlJVMC19vf647JCwJAl6H2exnH4BfVQJAL9280DmvYrpdEnZo1wyR2tZLZfqk
auNrZGbJaDJRabDBVuIBnEQFBW3gB46tKqicLOr9C4eRzmYpWEB2iWvQ+QJAPagI
USWxLyXz3yydQ2hPYnAnMW01O934lrE67avpO1vI+fya5aCHOtl6TVi9fP+2dq9P
Qrt2eZEagwhAlTHRzQJAdf6CGLVdgXWq+JyK6Yp3S9npd+YKJ3T0OJ0Qg9VlB+OQ
s/tlqQuXmj03ZxS9+e5pD0rZ9QvL7BtZ30hHYHOHCw== -----END RSA PRIVATE
KEY-----"