在Ruby中实现gpg加密

7
尝试将一些旧的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. 我还看到其他较小的gems和库,用户已经设计了它们,但是由于这是正式工作使用,我只能使用来自rubyGems数据库的认证gems。

谢谢!

1个回答

10

最近我使用了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

您可能希望知道,rubygems 上的内容并没有被“认证”,任何人都可以在那里发布一个 gem(而且只需要 3 分钟)。


2
就像我在五分钟内把这个(https://rubygems.org/gems/rgpg)搞定了一样! :-) - Richard Cook

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接