2013-06-17 75 views
6

Cố gắng chuyển đổi một số tập lệnh shell/unix cũ thành Ruby.Thực hiện mã hóa gpg trong Ruby

Tôi có mã hóa sau đây của tệp được thực hiện thông qua công cụ gpg trong Unix. Tôi có thể vượt qua trong khóa người nhận, tập tin tôi muốn mã hóa, và outfile để pgp mã hóa một cái gì đó.

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

Ruby tương đương với mã hóa đơn giản như trên là gì?

Sau khi thực hiện một số việc đào bới, tôi thấy:

  1. OpenPGP là phổ biến, nhưng không có tài liệu hướng dẫn trên trang web RubyGems và những nơi khác là thưa thớt với các ví dụ tốt.
  2. gpgme có vẻ phổ biến và đầy hứa hẹn. Tuy nhiên, tôi sẽ thành thật, tôi mới với Ruby và nhấp vào tài liệu (xem liên kết) để lại cho tôi một chút nhầm lẫn về nơi để bắt đầu (ví dụ như một ví dụ tốt đẹp)
  3. Tôi cũng thấy đá quý và thư viện mà người dùng đã thiết kế, nhưng tôi bị hạn chế sử dụng đá quý được chứng nhận từ cơ sở dữ liệu rubyGems vì đây là để sử dụng công việc chính thức.

Cảm ơn!

Trả lời

9

Tôi đã sử dụng gpgme gần đây. Các mã để mã hóa một tập tin trông như thế này

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 => "[email protected]" 
    end 
end 

Bạn có thể muốn biết rằng không có gì "chứng nhận" về những gì trên rubygems là - ai cũng có thể gửi một viên ngọc đó (và phải mất tất cả 3 phút để làm như vậy)

+0

Điều này rất hữu ích, cảm ơn! – user2490003

+2

Cũng giống như tôi đã tấn công này (https://rubygems.org/gems/rgpg) cùng nhau trong năm phút! :-) –

Các vấn đề liên quan