尝试加密时OpenSSL挂起

时间:2013-01-03 05:08:46

标签: openssl rsa public-key-encryption private-key

我希望这里有人对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,所以我可能会忽略一些简单的事情,这就是为什么我希望有人能指出我正确的方向。

我感谢任何建议!谢谢!

1 个答案:

答案 0 :(得分:1)

您在命令的前半部分缺少-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将被正确读取为输入文件。