Encryption 基于web浏览器的Gpg加密

Encryption 基于web浏览器的Gpg加密,encryption,gnupg,Encryption,Gnupg,我在网上到处搜索,但找不到答案,所以我希望我能在这里找到答案 我有一个用Perl编写的在Windows和IIS上运行的web应用程序。 其中一个脚本执行多个任务。其中一个执行一个命令来加密文件。命令如下: my $cmd = "c:\\gnupg\\pub\\gpg -ase --always-trust --batch --passphrase mypassphrase --output $filename.pgp -r stuff $filename"; qx/$cmd/; 不幸的是,这

我在网上到处搜索,但找不到答案,所以我希望我能在这里找到答案

我有一个用Perl编写的在Windows和IIS上运行的web应用程序。 其中一个脚本执行多个任务。其中一个执行一个命令来加密文件。命令如下:

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在同一台服务器上运行相同的命令时,它可以正常工作

据我所知,当你们在网络上运行纸条时,它是以匿名用户的身份运行的。因此,它看不到作为本地用户生成的secrey密钥。如果我通过cmd在本地运行该命令,它会看到密钥,因为它是作为本地用户运行的

问题是:我如何解决这个问题并使纸条工作

谢谢,


-安德烈

我终于想出了解决这个问题的办法。
我的做法是:
1.以本地用户身份导出公钥和密钥。
2.使用web perl脚本导入公钥。
my$cmd=“c:\gnupg\pub\gpg——导入c:\public.key”
qx/$cmd/
3.执行相同操作以输入密钥。

我必须为每个密钥运行一次脚本,以便为web服务器用户创建密钥。

从那以后,我的应用程序开始完美地工作了

您可以在启动命令之前使用GNUPGHOME environnement变量

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/;

查看web服务器用户的主目录,并将密钥(以及其余的配置数据)放在正确的位置。