Tôi đang cố viết ứng dụng bảng điều khiển sẽ giải mã chữ ký gpg theo yêu cầu. Mọi thứ đều ổn, NGOẠI TRỪ phần mà nó nhắc mật khẩu GPG của tôi. Làm cách nào để gọi số gpg --decrypt
từ dòng lệnh mà không có hộp thoại mật khẩu?Giải mã chuỗi GPG khỏi dòng lệnh
Dưới đây là mã của tôi cho đến nay:
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();
Tôi đã cố gắng sử dụng --passphrase MyFakePassword
, --passphrase-fd MyFakePassword
và thậm chí --passphrase-fd 0
với mật khẩu của tôi trên dòng đầu tiên của đầu vào. Tôi muốn tránh đặt mật khẩu của mình vào một tệp txt trên máy đang chạy mã này, nếu có thể.
Cảm ơn trước vì đã được trợ giúp.
Cảm ơn cho điều này! Ngày lãng phí trên nó.Tải xuống ftp://ftp.gnupg.org/gcrypt/binary/gnupg-w32cli-1.4.9.exe và cài đặt nó đã khắc phục sự cố cho tôi –