我想解密一个文件并对其进行编辑,而不将其清晰的内容写入临时文件,以避免敏感数据的泄露。
我已经用以下命令创建了原始文件:
echo -n "hello world" | gpg --encrypt --symmetric --output sensitive.gpg
我可以解密此文件并输出:
$ gpg --decrypt sensitive.gpg
gpg: AES256.OCB encrypted session key
gpg: encrypted with 1 passphrase
gpg: encrypted with cv25519 key, ID <blablabla>
hello world
但是,当我尝试将输出通过管道传输到时gpg --encrypt
,似乎两个进程同时运行并尝试同时使用 stdin:
gpg --no-symkey-cache --pinentry-mode loopback --decrypt sensitive.gpg | gpg --encrypt --symmetric --pinentry-mode loopback --output sensitive.gpg
在我输入任何密码之前,这里是输出:
gpg: AES256.OCB encrypted session key
Enter passphrase: Enter passphrase:
您可以看到它两次询问我密码。
以下是正在运行的进程:
$ ps | grep gpg
49716 ttys002 0:00.02 gpg --no-symkey-cache --pinentry-mode loopback --decrypt sensitive.gpg
49717 ttys002 0:00.01 gpg --encrypt --symmetric --pinentry-mode loopback --output sensitive.gpg
有没有什么解决方案可以gpg --encrypt
等待gpg --decrypt
它完成其工作?
我想vipe
在这两个命令之间添加一个编辑器。