Tôi không thể tìm thấy một ví dụ đơn giản về cách thực hiện việc này. Tôi có tệp XLS được mã hóa PGP và khóa PGP. Đây là mã của tôi trả về một chuỗi trống:Cách giải mã tệp PGP được mã hóa bằng Ruby gpgme
require 'rubygems'
require 'gpgme'
def passfunc(obj, uid_hint, passphrase_info, prev_was_bad, fd)
io = IO.for_fd(fd, 'w')
io.puts "PASSPHRASE"
io.flush
end
encrypted_data = GPGME::Data.new(File.open("file.xls.pgp"))
key = GPGME::Data.new(File.open("key.txt"))
ctx = GPGME::Ctx.new :passphrase_callback => method(:passfunc)
ctx.import_keys key
decrypted = ctx.decrypt encrypted_data
puts decrypted.read
Tôi có thể giải mã tệp này trong chương trình có tên GNU Privacy Assistant trên Windows bằng cùng một khóa. Bất kỳ trợ giúp được đánh giá cao.
Cảm ơn cho việc này. Đôi khi tôi cảm thấy như 'E' của GPGME là viết tắt của 'Enigmatic' – aidan
@Vincent obj, uid_hint, passphrase_info, prev_was_bad, thông số fd là gì. Trong trường hợp khách hàng của tôi đã chia sẻ khóa công khai và khóa riêng tư và tệp được mã hóa chỉ – VKatz
@Vincent, Vui lòng cung cấp trợ giúp của bạn Tôi là loại STUCK! ở giữa. – VKatz