6

试图将一些旧的 shell/unix 脚本转换成 Ruby。

我对通过 Unix 中的 gpg 工具完成的文件进行了以下加密。我可以传入收件人密钥、我要加密的文件以及 pgp 加密的输出文件。

gpg --recipient "$my_recipient_key" \
    --encrypt "$my_file" \
    --output "$my_outfile" \
    --always-trust \
    --compress-algo zip

什么是 Ruby 等价于进行上述简单加密?

在做了一些挖掘之后,我看到:

  1. OpenPGP很流行,但是 RubyGems 站点上没有文档,其他地方也很少有很好的例子。
  2. gpgme似乎很受欢迎且很有前途。但是,老实说,我是 Ruby 新手,单击文档(请参阅链接)让我对从哪里开始有点困惑(即一个很好的例子会很好)
  3. 我还看到用户设计的其他较小的 gem 和库,但我仅限于使用 ruby​​Gems 数据库中的认证 gem,因为这是用于官方工作的。

谢谢!

4

1 回答 1

9

我最近用过gpgme。加密文件的代码如下所示

GPGME::Key.import(File.open(path_to_key)) #only needed if the key has not been imported previously
crypto = GPGME::Crypto.new :always_trust => true
File.open(path_to_encrypt) do |in_file|
  File.open(output_path, 'wb') do |out_file|
    crypto.encrypt in_file, :output => out_file, :recipients => "foo@example.com"
  end
end

您可能想知道关于 ruby​​gems 上的内容没有任何“认证” - 任何人都可以在其中发布宝石(并且这样做需要 3 分钟)

于 2013-06-17T07:29:24.780 回答