通过Web浏览器进行Gpg加密

时间:2011-08-05 15:18:27

标签: encryption gnupg

我在网上搜索,但无法找到答案,所以我希望我能在这里找到答案。

我在Windows上运行的Web应用程序和用Perl编写的IIS。 其中一个脚本可以执行多个任务。其中一个执行加密文件的命令。这是命令:

my $cmd = "c:\\gnupg\\pub\\gpg -ase --always-trust --batch --passphrase mypassphrase --output $filename.pgp -r stuff $filename";

qx/$cmd/;

不幸的是,这不起作用。 我得到的错误是:

gpg: no default secret key: No secret key gpg: C:\\Dev\\somefile.csv: sign+encrypt failed: No secret key

当我尝试从cmd在同一台服务器上运行相同的命令时,它可以正常工作。

据我所知,当您通过Web运行脚本时,它以匿名用户身份运行。因此它没有看到作为本地用户生成的保密密钥。如果我通过cmd在本地运行命令,它会看到密钥,因为它以本地用户身份运行。

问题是:如何解决这个问题并使脚本工作?

谢谢,

-Andrey

2 个答案:

答案 0 :(得分:2)

我终于找到了解决这个问题的方法 我这样做的方式是:
1.以本地用户身份导出公钥和密钥 2.使用web perl脚本导入公钥 我的$ cmd =“c:\ gnupg \ pub \ gpg --import c:\ public.key”;

QX / $ CMD /;
3.同样输入密钥。

我必须为每个密钥运行一次脚本,以便为Web服务器用户创建密钥 之后,我的申请开始完美无缺!

答案 1 :(得分:0)

在启动命令之前,您可以使用GNUPGHOME环境变量。

GNUPGHOME=C:\\Users\\myUser\\.gnupg\\ 
my $cmd = "c:\\gnupg\\pub\\gpg -ase --always-trust --batch --passphrase mypassphrase --output $filename.pgp -r stuff $filename";

qx/$cmd/;