【问题标题】:Implementing gpg Encryption in Ruby在 Ruby 中实现 gpg 加密
【发布时间】:2013-06-17 04:40:05
【问题描述】:

尝试将一些旧的 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,因为这是供官方工作使用的。

谢谢!

【问题讨论】:

    标签: ruby encryption gnupg openpgp


    【解决方案1】:

    我最近用过 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 上的内容没有任何“认证” - 任何人都可以在其中发布 gem(而且这需要 3 分钟)

    【讨论】:

    猜你喜欢
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多