尝试加密时OpenSSL挂起

尝试加密时OpenSSL挂起,openssl,rsa,public-key-encryption,private-key,Openssl,Rsa,Public Key Encryption,Private Key,我希望这里有人对OpenSSL有所了解。我对OpenSSL完全陌生,我正试图实现它来为一个web商店加密动态生成的PayPal按钮。我有一个PHP脚本可以实现这一点,但是它不起作用,所以我决定尝试在命令提示符下运行该命令,并意识到当我尝试加密时,它挂起了 我已经生成了一个公共证书和一个私钥,还下载了PayPal的公共证书 这是我尝试过的命令: (openssl smime -sign -signer C:\Users\MyName\Desktop\OpenSSLTest\my-pubcert.p

我希望这里有人对OpenSSL有所了解。我对OpenSSL完全陌生,我正试图实现它来为一个web商店加密动态生成的PayPal按钮。我有一个PHP脚本可以实现这一点,但是它不起作用,所以我决定尝试在命令提示符下运行该命令,并意识到当我尝试加密时,它挂起了

我已经生成了一个公共证书和一个私钥,还下载了PayPal的公共证书

这是我尝试过的命令:

(openssl smime -sign -signer C:\Users\MyName\Desktop\OpenSSLTest\my-pubcert.pem -inkey 
C:\Users\MyName\Desktop\OpenSSLTest\my-prvkey.pem -outform der -nodetach -binary 
C:\Users\MyName\Desktop\OpenSSLTest\DataToEncrypt.txt) | openssl smime -encrypt -des3 
-binary -outform pem C:\Users\MyName\Desktop\OpenSSLTest\paypal_cert.pem
运行此命令时,会收到以下消息:

Loading 'screen' into random state -Loading 'screen' into random state -done done
在这一点上,它挂起了。有OpenSSL经验的人知道我为什么会这样吗?请记住,我以前从未使用过OpenSSL,所以我可能忽略了一些简单的东西,这就是为什么我希望有人能给我指出正确的方向


谢谢你的建议!谢谢

在命令的前半部分,您在中缺少了一个
,该命令随后试图从标准输入读取数据(因此挂起)

正确的命令行应该是

openssl smime -sign -signer C:\Users\MyName\Desktop\OpenSSLTest\my-pubcert.pem -inkey 
C:\Users\MyName\Desktop\OpenSSLTest\my-prvkey.pem -outform der -nodetach -binary 
-in C:\Users\MyName\Desktop\OpenSSLTest\DataToEncrypt.txt | openssl smime -encrypt -des3 
-binary -outform pem C:\Users\MyName\Desktop\OpenSSLTest\paypal_cert.pem
请注意在第3行中添加了
-in


然后DataToEncrypt.txt将被正确读取为输入文件。

您在命令的前半部分缺少了一个
-in
,该命令随后尝试从标准输入读取数据(因此挂起)

正确的命令行应该是

openssl smime -sign -signer C:\Users\MyName\Desktop\OpenSSLTest\my-pubcert.pem -inkey 
C:\Users\MyName\Desktop\OpenSSLTest\my-prvkey.pem -outform der -nodetach -binary 
-in C:\Users\MyName\Desktop\OpenSSLTest\DataToEncrypt.txt | openssl smime -encrypt -des3 
-binary -outform pem C:\Users\MyName\Desktop\OpenSSLTest\paypal_cert.pem
请注意在第3行中添加了
-in

然后DataToEncrypt.txt将被正确读取为输入文件