1

我希望这里有人对 OpenSSL 有所了解。我对 OpenSSL 完全陌生,我正在尝试实现它来加密为网上商店动态生成的 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,所以我可能会忽略一些简单的事情,这就是为什么我希望有人能指出我正确的方向。

我很感激任何建议!谢谢!

4

1 回答 1

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

注意添加-in到第 3 行。

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

于 2013-01-03T06:36:37.130 回答