web-dev-qa-db-ja.com

GnuPGでプレーンテキストを暗号化するにはどうすればよいですか?

私は最近GnuPGとたくさん仕事をしていて、ファイルを暗号化する能力などに依存するようになりました。

ただし、私は現在、ファイルやディスクなどの「コンテナー」ではなく、既存のキーを使用してテキスト自体を暗号化/復号化したいコミュニケーション(つまり、チャット、メールなど)を伴ういくつかのプロジェクトに取り組んでいます。画像。

コンテナーを暗号化し、ストリームをbase64(または適切なもの)に変換し、テキストにそのようにマークを付けることができると思いますが、もっと簡単な解決策があると思います。私が見逃している単純な何かがあると確信していますが、まあ、私はそれを逃しています。

何か案は?

28
humble_coder

何について:

$ echo "hello" | gpg --symmetric --armor --passphrase "asdf"
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.4.11 (Darwin)

jA0EAwMCWfhRZo0AiwVgyRw5Q26Tf+i6OCiQOVoUNJZEfz5ekBJw6BdVpE88
=ecV3
-----END PGP MESSAGE-----

これがあなたが探しているものである場合は、セットアップする必要がありますgpg-agentパスフレーズを処理する…このようにコマンドラインからパスフレーズを渡すのはかなり安全ではありません(マシン上のプログラムが盗む可能性があるため)。

また、「既存の鍵」が「既存のpub/priv鍵のペア」を意味する場合は、次のようになります。

$ 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-----

どちらの場合も、メッセージは以下を使用して復号化されます。

$ cat encrypted_message | gpg
gpg: CAST5 encrypted data
Enter passphrase: asdf
gpg: encrypted with 1 passphrase
hello
35
David Wolever