【问题标题】:Decrypting files with PGP and C#使用 PGP 和 C# 解密文件
【发布时间】:2011-07-19 19:08:20
【问题描述】:

我的问题是当命令行运行时它不会在我的解密文本文件中添加任何内容。我在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();

【问题讨论】:

  • 这表面上与 C# 相关,您正在寻求有关 pgp 的帮助,但使用的是 gpg...实际上这是一个 gpg 问题,所以也许超级用户会更合适。

标签: c# pgp encryption openpgp


【解决方案1】:

我最近做了很多 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 退出代码等。

也许这会有所帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-22
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多