2011-07-19 47 views
-1

我的問題是當命令行運行時,它不會在我的解密文本文件中添加任何內容。我將文本添加到decrypt.txt文件以查看它是否寫入到文件中,並且是因爲文本被刪除。使用PGP和C解密文件#

 System.Diagnostics.ProcessStartInfo psi = 
     new System.Diagnostics.ProcessStartInfo("cmd.exe"); 
     psi.CreateNoWindow = true; 
     psi.UseShellExecute = false; 
     psi.RedirectStandardInput = true; 
     psi.RedirectStandardOutput = true; 
     psi.RedirectStandardError = true; 
     psi.WorkingDirectory = "c:\\"; 

     System.Diagnostics.Process process = System.Diagnostics.Process.Start(psi); 
     string sCommandLine = "echo femme toxin sorghum| gpg.exe --batch --passphrase-fd 0 --decrypt E:\\entemp.txt > E:\\detemp.txt"; 
     process.StandardInput.WriteLine(sCommandLine); 
     process.StandardInput.Flush(); 
     process.StandardInput.Close(); 
     process.WaitForExit(); 
     process.Close(); 
+1

這是表面上與C#相關的,你需要幫助與pgp,但使用gpg ...並且真的這是一個gpg問題,所以也許超級用戶會更合適。 – Josh

回答

1

我已經做了很多最近gpg.exe東西...

我想你重定向你的GPG命令標準輸出到您的文件...

您可能希望更多的東西像這樣的

echo password123|gpg.exe --yes --batch --passphrase-fd 0 --decrypt --output c:\file.txt c:\file.gpg

你也可以gpg.exe直接在過程調用調用cmd,然後通過一個命令,而不是...如果你做次儘管如此,你還是需要nix「回聲」,並將--yes ... c:\file.gpg等添加到參數屬性中。那麼......你的第一個輸入會像gpgProc.standardinput.writeline(password123);

這種方法也讓您得到gpg.exe標準錯誤輸出和處理的退出代碼,而不是直接的cmd.exe退出代碼的能力,等等​​。

也許這將有助於...