我正在尝试加密和解密字符串。 现在我已经这样做了:
mis@fasan:~$ echo "hallo" | gpg --symmetric --pgp8 --cipher-algo AES256 > /tmp/1
Enter passphrase:
Repeat passphrase:
mis@fasan:~$
mis@fasan:~$ cat /tmp/1 | gpg --decrypt
gpg: AES256 encrypted data
Enter passphrase:
gpg: encrypted with 1 passphrase
hallo
mis@fasan:~$
它就像我希望它工作一样。现在我用文件中的密码短语尝试了它,但它不起作用:
mis@fasan:~$ echo "hallo" | gpg --symmetric --pgp8 --cipher-algo AES256 --passphrase-fd 0 < /home/mis/testgpg > /tmp/1
Reading passphrase from file descriptor 0
mis@fasan:~$
mis@fasan:~$ cat /tmp/1 | gpg --decrypt
gpg: AES256 encrypted data
gpg: encrypted with 1 passphrase
非常有趣的是,他要求密码短语。如果我写错了,我收到一条错误信息,但是如果我写了正确的密码,我就不会得到我的密码字符串。 我的目标是达到这个目标:
mis@fasan:~$ echo "hallo" | gpg --symmetric --pgp8 --cipher-algo AES256 --passphrase-fd 0 < /home/mis/testgpg > /tmp/1
Reading passphrase from file descriptor 0
mis@fasan:~$
mis@fasan:~$ cat /tmp/1 | gpg --decrypt --passphrase-fd 0 < /home/mis/testgpg
Reading passphrase from file descriptor 0
gpg: decrypt_message failed: eof
mis@fasan:~$
但这也不起作用。有谁知道,我做错了什么?
答案 0 :(得分:4)
您正尝试通过相同的文件描述符(0,即stdin)将测试加密(echo "hallo" |
)和密码短语(< /home/mis/testgpg
)。这些重定向中只有一个可以成功,它是密码短语。为这两个任务使用不同的文件或文件描述符。
例如,使用文件描述符#3作为密码短语:
echo "hallo" | gpg --symmetric --pgp8 --cipher-algo AES256 --passphrase-fd 3 3< /home/mis/testgpg > /tmp/1