3
這感覺就像它應該是死的簡單,但我沒有任何運氣。如何使用OpenPGP和Ruby對數據進行非對稱加密?
這種情況是這樣的:我有一個公共* .asc密鑰文件。我想使用這個文件(不是我的個人密鑰環)來加密服務器上的數據,以便我可以用密鑰在本地解密它。
從命令行我可以實現這個使用gpg
,但我寧願使用一個Ruby庫,不僅僅是CLI的包裝(也就是說,提供綁定到C庫)。我看過GPGME和OpenPGP的寶石,一直沒有弄清楚如何使用它們。文檔(尤其是OpenPGP)相當稀少。
這裏,例如,是我一直在使用GPGME試過了,沒有任何的運氣:
key = GPGME::Data.new(File.open(path_to_file))
data = GPGME::Data.new("I want to encrypt this string.")
# Raises GPGME::Error::InvalidValue
GPGME::Ctx.new do |ctx|
e = ctx.encrypt(key, data)
end
有沒有人經歷過這個了嗎?這當然不會那麼複雜?
我不熟悉GPGME,但如果你嘗試'它的工作原理GPGME :: Key.import(File.open(文件路徑)) '?如果它仍然失敗,如果你Base64解碼.asc然後再試一次? – emboss 2012-07-18 19:13:14
你能證明你如何從命令行執行此操作嗎?典型的使用要求首先將收件人公鑰導入到鑰匙環中... – PinnyM 2012-07-18 19:44:45