Расшифровка файлов с помощью PGP и C#

Моя проблема в том, что когда запускается командная строка, она ничего не добавляет в мой текстовый файл расшифровки. Я добавил текст в файл decrypt.txt, чтобы посмотреть, записывается ли он в него, и это происходит, потому что текст удаляется.

        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();

person jstylez    schedule 19.07.2011    source источник
comment
Это поверхностно связано с C #, вы просите помощи с pgp, но используете gpg... и на самом деле это вопрос gpg, поэтому, возможно, суперпользователь будет более подходящим.   -  person Josh    schedule 19.07.2011


Ответы (1)


В последнее время я много занимался gpg.exe...

я думаю, вы перенаправляете стандартную команду gpg в свой файл...

вы можете хотеть что-то еще, как это

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

вы также можете вызвать gpg.exe непосредственно в своем процессе, вместо того, чтобы вызывать cmd и затем передавать команду... если вы сделаете это, вы уберете "эхо" и добавите --yes ... c:\file.gpg и т. д. к свойству arguments. тогда... ваш первый ввод будет похож на gpgProc.standardinput.writeline(password123);

этот метод также дает вам возможность получать стандартный вывод ошибок и обрабатывать коды выхода для gpg.exe напрямую вместо кода выхода cmd.exe и т. д.

возможно это поможет...

person Justin C    schedule 06.08.2011