问题描述
我最近一直在GnuPG上工作很多,并且依赖于其加密文件的能力等。
I've been working a great deal with GnuPG lately and have come to depend on its ability to encrypt files, etc.
但是,我目前正在一些涉及通信(即聊天,电子邮件等)的项目,其中我想使用现有密钥来加密/解密文本本身,而不是容器,如文件或磁盘映像。
However, I am currently working on a couple of projects that involve communication (i.e. chat,email, etc) where I'd like to use existing keys to encrypt/decrypt text itself as opposed to a "container" such as a file or disk image.
我想我可以加密容器,将流转换为base64(或适当的东西),然后标记文本,但我猜想有一个更直接的解决方案。我确定有一些简单的东西我失踪了,但是,我错过了。
I suppose I could encrypt the container, convert the stream to base64 (or something appropriate) then mark the text as such, but I would guess there is a more straightforward solution. I'm sure there is something simple I'm missing, but, well, I'm missing it.
任何想法?
推荐答案
What about:
$ echo "hello" | gpg --symmetric --armor --passphrase "asdf"
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.11 (Darwin)
jA0EAwMCWfhRZo0AiwVgyRw5Q26Tf+i6OCiQOVoUNJZEfz5ekBJw6BdVpE88
=ecV3
-----END PGP MESSAGE-----
如果这是你想要的,你需要设置 gpg-agent
来处理密码短语...从命令行传入像这样是相当不安全的(因为机器上的任何程序可能会窃取它)。
If this is what you're looking for, you'll want to setup gpg-agent
to handle the passphrase… Passing it in from the command line like that is fairly insecure (as any program on the machine could steal it).
如果通过现有的密钥表示现有的公钥/私钥对然后:
And if by "existing keys" you mean "existing pub/priv key pairs", then:
$ echo "hello" | gpg --encrypt --armor -r B230230D
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.11 (Darwin)
hQIMA+Cu7Ed7iNErAQ/8CTkEOOGVub1wEt4+5qnB9gNbVF7TNjWMjw/znKAjFg1j
f0s5xuUoPamvtLXKbs0J6OdpwTZfOkK/MIXxjsz1P4cC01CmoSsdzIkhbqccX7GP
VWRM9P0TxI9005JaxMh9rsoxVP2k/RtK3z2f3didl2SMS45TfhV8MJss5HqeQlVC
KHiCWfbHB7ww68ZIVs/AAx0zVPVld1BwHJcRvFIohBu9GUTrDMYxpOsKNZDVWXb0
154KrNFgnjgueGmh25HYdfJ+gs0Fclsq5XATo2H7gfGnq+DALeWy20ig4o9VOAcj
/KU2HRA/XD13MHRZiyJVTszF1VfvsdANnemI75O+f7z34+P0lQiCCV/Z7xqrd384
9V7Uby8n+9PppD+mpt8wiCjQUfAXmHBptoNw8OwuWUGnw7svCu7wqzgjBTyAxvwL
325/o9O2TTYZvOlpoxGayG3JbKzpHlQDv7RKIwC8W1nr/0q96Hxh+RpZfk0zwGyP
wZOx27AyhLAOJtq6Tfg/ef+Ln6d5BaDWmvF9sC/wKXnjN60X6DSLlMDDIYO01whe
JroyE+R1KMYB7r5y7VUGCoyPcrJj3yQTkYVWuvHSsy3sn7N+iWd/29V/ipFeT5Tb
SKRV/Dj/ypJn07jnsLb2ixqr+UTaARP8el7UTJtYCzxs14xdw4uRvkezKZR08C/S
QQFpMeFcVmxGCQVr5llp24bDjtiIT06VbXqZBiQ+kX9JHUDwYEs1qi+seNAlCG4C
4INLNud/n85iPWrSropiYPPY
=SGgD
-----END PGP MESSAGE-----
在这两种情况下,消息都使用以下方式解密: p>
In both cases, the message is decrypted using:
$ cat encrypted_message | gpg
gpg: CAST5 encrypted data
Enter passphrase: asdf
gpg: encrypted with 1 passphrase
hello
这篇关于如何使用GnuPG加密纯文本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!