Расшифровка файлов с PGP и C # - PullRequest
0 голосов
/ 19 июля 2011

Моя проблема в том, что когда запускается командная строка, она ничего не добавляет в мой расшифрованный текстовый файл. Я добавил текст в файл 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();

1 Ответ

2 голосов
/ 06 августа 2011

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

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

вы можете захотеть что-то еще подобное

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

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

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

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

...