GPG --gen -key 密码在单独的文件中

GPG --gen -key with password in a separate file

我想使用密码加密文件,我在命令行中使用 gpg --gen-key 创建密钥(我使用默认选项),我也将其用于"automated" 无需用户交互的方式。

但是,我想指定存储在单独文件中的密码。这就是我 运行 现在的样子:

gpg --batch --gen-key "D:\Staging\FileContainingKeySettings.txt"

名为 "FileContainingKeySettings.txt" 的文件中的内容是:

%echo Generating a default key
Key-Type: default
Subkey-Type: default
Name-Real: PBJ
Name-Comment: test
Name-Email: PBJ@pbj.com
Expire-Date: 0
Passphrase:blah
%commit
%echo done

这样就可以生成密钥了。

然后我称之为:

gpg --batch --yes -r PBJ --output D:\Staging\newEncryptedFile.txt --encrypt 
D:\Staging\textfiletobeencrypted.csv

这也行。

所以现在我有1个问题和1个疑问。问题是我需要指定密码来引用一个看起来像这样(但更长)的文件:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: BCPG v1.47

[encoding]

-----END PGP PUBLIC KEY BLOCK-----

而不是使用我写 "blah"^ 的密码,而且我还没有找到在线或从我周围的任何其他团队成员处执行此操作的方法。我该怎么做?

问题:我现在还注意到,我收到的包含加密密钥的文件位于顶部

" -----BEGIN PGP PUBLIC KEY BLOCK-----"

...它说它使用 PGP(但我使用的是 gpg)。我知道 gpg 和 pgp 是不同的并且阅读过它们,但是我什至可以使用 gpg 来使用显然是用 pgp 生成的密钥来加密文件吗?

(在Windows)

更新:现在我可能已经开始工作了,尽管我仍然需要通过让其他人解密消息来验证(当我解密它时它工作正常)。愚蠢的是,当我之前实际尝试过这个时,我没有更早地想到这个代码更改......我只是从这部分更改了我的 cmd 调用:

gpg --batch --gen-key "D:\Staging\FileContainingKeySettings.txt"

改为在此处指定密码文件位置:

gpg --batch --passphrase "D:\Staging\FileWithActualKey.txt --gen-key 
"D:\Staging\FileContainingKeySettings.txt"

我从文件 "FileContainingKeySettings" 中完全删除了密码行。我还没有通过让其他人在他们最后解密它来测试这个......我希望它有效。至少我没有出错。但是现在当我再次 运行 这一行来实际进行加密时,它起作用了:

gpg --batch --yes -r PBJ --output D:\Staging\newEncryptedFile.txt --encrypt 
D:\Staging\textfiletobeencrypted.csv