Командная строка GPG расшифровывает использование C # - пароль?

StackOverflow https://stackoverflow.com/questions/4069919

  •  28-09-2019
  •  | 
  •  

Вопрос

Я использую командную строку для шифрования файлов, которые я отправляю, но я пытаюсь выяснить, как использовать тот же метод, чтобы расшифровать их. Если я запускаю команду, она предложена для паронной фразы, но я не вижу способа пройти в парольную фразу с помощью командной строки. Вот как я шифрую файл:

var proc = new Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.WorkingDirectory = "C:\\";
proc.StartInfo.FileName = @"C:\Progra~1\GNU\GnuPG\gpg.exe";
proc.StartInfo.Arguments = @"-e -u ""user1@example.com"" -r ""user2@example.com"" ""C:\file.csc""";
proc.Start();
proc.WaitForExit();

** Вот полезная ссылка, которая использовалась для моего решения:http://social.msdn.microsoft.com/forums/en-us/csharpgeneral/thrad/38c21304-fc7a-42cc-a5fb-dcb6da7f6411/

Это было полезно?

Решение

Недвижимость Процесс. Sandardardinput. Должна дать вам Streamwriter, который вы можете использовать для предоставления парольной фразы на стандартном входе.

Другие советы

GPG на Linux имеет --passfphrase-fd n, куда N. INT. Если n == 0, парольная фраза читается с стандартного ввода.

Не уверен, применяется ли то же самое на Windows, но может стоить проверить.

Использовать --passphrase-fd 0 Чтобы получить GPG, чтобы взять парольную фразу из stdin, а затем пропустите ее в использовании трубы.

echo 123456| gpg --passphrase-fd 0 -e -u user1@example.com -r user2@example.com C:\file.csc

или

gpg --passphrase-fd 0 -e -u user1@example.com -r user2@example.com --passphrase-fd 2 file.csc < password.file

Убедитесь, что вы не проходите какие-либо дополнительные пробелы на Stdin как-то, так как GPG не обрабатывает тех хорошо.

Я не уверен, что вы можете пройти что-то на stdin на .NET, так что вам придется заполнить там пробел.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top