使用gpg传递密码文件解密文件

Use gpg to pass the passphrase file to decrypt the files

我需要使用 shell 从文件传递密码,并希望注释行可以从该文件中读取密码,--passphrase-fd 对我不起作用。它总是输出一个错误"can not find the file"。我调试了输出和输入文件,它们是正确的。可能是passphrase.cat这个文件,不过我查了一下,这个文件没有问题。评论区有问题吗??

我的代码如下,感谢您的帮助:

                        Shell(pgp & "--passphrase -fd 0 <C:\Temp\test.txt" & " -output " & output & "--decrypt " & input & """", AppWinStyle.Hide, True) ' the error happens here.


                    End If

'''  The error as follows: 
 ''' Unable to complete the request: System.IO.FileNotFoundException: File not found. at Microsoft.VisualBasic.Interaction.Shell(String PathName, AppWinStyle Style, Boolean Wait, Int32 Timeout) at the Sign_Click(object sender, EventArgs e) in C:\sign\MainForm.vb:line361

我预计会有一大堆问题。为了进一步调试,将命令打印到命令行而不是用 Shell(...).

执行
  • 我猜 pgp 变量没有以 space 结尾,因此应用程序尝试执行类似 C:\path\to\gnupg\gpg.exe--passphrase 而不是 C:\path\to\gnupg\gpg.exe--passphrase参数
  • output 变量和 --decrypt 命令之间可能存在同样的问题
  • --passphrase-fd里面可能没有space,你写了passphrase -fd
  • --output是一个长参数,需要两个破折号(你写的是-output

我终于明白了。必须使用 -passphrase-file passwordfile.txt 来解密我在应用程序中的文件。