我試圖編寫一個控制檯應用程序,該應用程序將根據請求解密gpg簽名。一切都很好,除了它提示輸入我的GPG密碼的部分。如何在沒有密碼對話框的情況下從命令行調用gpg --decrypt
?從命令行解密GPG字符串
這裏是到目前爲止我的代碼:
var startInfo = new ProcessStartInfo("gpg.exe");
startInfo.Arguments = "--decrypt"; //this is where I want to insert "--passphrase MyFakePassword"
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.WorkingDirectory = @"C:\Program Files (x86)\GNU\GnuPG";
var proc = Process.Start(startInfo);
var sCommandLine = stringData + "\n"+(char)26+"\n"; //stringData is the encrypted string
proc.StandardInput.WriteLine(sCommandLine);
proc.StandardInput.Flush();
proc.StandardInput.Close();
var result = proc.StandardOutput.ReadToEnd();
我使用--passphrase MyFakePassword
,--passphrase-fd MyFakePassword
甚至與我輸入的第一行密碼--passphrase-fd 0
嘗試。如果可能的話,我想避免將密碼放在運行此代碼的機器上的txt文件中。
在此先感謝您的幫助。
感謝這個!浪費時間在它上。下載ftp://ftp.gnupg.org/gcrypt/binary/gnupg-w32cli-1.4.9.exe並安裝它解決了我的問題 – 2013-08-15 08:27:53