如何使用GpgAPI为c#解密文件而不提示输入密码
本文关键字:提示 输入 密码 文件 解密 何使用 GpgAPI | 更新日期: 2023-09-27 17:59:01
我一直在尝试使用C#中的GpgAPI解密我的文件。它工作正常,但它一直提示我输入密码。下面的代码是我使用的,它来自作者的例子。
public bool DecryptReport(string dataFileLocation, string filename)
{
log.Info("Starting GPG decryption.");
GpgInterface.ExePath = @"C:'Program Files (x86)'GNU'GnuPG'gpg2.exe";
String encryptedFile = dataFileLocation + filename;
filename = filename.ToString().Substring(0, filename.ToString().IndexOf(".gpg")).ToString();
string file = dataFileLocation + filename;
try
{
log.Info("Decrypting " + file);
GpgDecrypt decrypt = new GpgDecrypt(encryptedFile, file);
decrypt.AskPassphrase = GetPassword;
{
log.Info("Password received.");
GpgInterfaceResult result = decrypt.Execute();
Callback(result);
}
}
catch(Exception e)
{
log.Error("Caught an exception" + e.InnerException);
return false;
}
return true;
}
public static string Callback(GpgInterfaceResult result)
{
if(result.Status == GpgInterfaceStatus.Success)
{
return "successfully decrypted.";
}
else
{
return "Error was found during decryption. Check the log.";
}
}
public static SecureString GetPassword(AskPassphraseInfo arg)
{
return GpgInterface.GetSecureStringFromString(“password$");
}
我在这个代码中做错了什么?为什么它不传递密码并继续解密,而不是提示输入密码?
gpg2不能正常工作。。。下载gpgclassic。参观https://www.gnupg.org/download/转到GnuPG binary->Windows->GnuPG classic的简单安装程序。
更改GpgInterface。ExePath=@"C:''Program Files(x86)''GNU''GnuPG''gpg2.exe"到"C:''Program Files(x86)''GNU''GnuPG''gpg.exe"