我正在尝试测试 openssl 的互操作性,一方面在 Ruby 中使用,另一方面在命令行中使用。
我生成了一个 RSA 证书并以这种方式提取了它的公钥:
openssl req -x509 -nodes -days 1825 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
openssl rsa -in mycert.pem -pubout > mycert.pub
我写了一个 Ruby 脚本,它做了两件事:
- 它首先使用公钥然后使用私钥对测试文件进行编码/解码(在 RSA 编码之上使用 Base64 编码以使网络通信更容易)
- 它运行系统命令以使用 openssl 命令行工具加密相同的测试文件
您可以在以下 Gist 中找到此 Ruby 脚本的代码:https ://gist.github.com/dirtyhenry/4673331 (参见poc-openssl-rsa.rb
文件)
我的问题是:为什么我的 Ruby 生成的public-encrypted.txt
文件与public-encrypted-cl64.txt
? 它是由某些文件系统副作用引起的吗?(即一个是字符串,而另一个是文件或其他东西?)
谢谢。