From dcf9d83ef95449fb5026d61dc47f691d471c454a Mon Sep 17 00:00:00 2001 From: Kosuke Aoki Date: Thu, 30 May 2024 15:16:16 +0900 Subject: [PATCH] =?UTF-8?q?=E3=81=84=E3=81=8F=E3=81=A4=E3=81=8B=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ショートオプションの説明を追加 * --output の説明を追加 * zip コマンドの絶対パス指定に関する注意点を追加 --- articles/gpg-file-encryption.md | 47 ++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/articles/gpg-file-encryption.md b/articles/gpg-file-encryption.md index 4561317..8cc6c3c 100644 --- a/articles/gpg-file-encryption.md +++ b/articles/gpg-file-encryption.md @@ -14,17 +14,24 @@ OpenSSL 版は [こちら](https://zenn.dev/noraworld/articles/file-encryption) zip -r foo.zip foo # 暗号化 -gpg --encrypt --recipient you@example.com foo.zip # バイナリデータ -gpg --encrypt --recipient you@example.com --armor foo.zip # アスキーデータ +gpg -e -r you@example.com -o /tmp foo.zip # バイナリデータ +gpg -e -r you@example.com -o /tmp -a foo.zip # アスキーデータ # 復号 gpg foo.zip.gpg ``` +| ロングオプション | ショートオプション | 説明 | +| --- | :---: | --- | +| `--encrypt` | `-e` | ファイルを暗号化します | +| `--recipient` | `-r` | 使用する秘密鍵を選択します | +| `--armor` | `-a` | バイナリではなくアスキーデータで出力します | +| `--output` | `-o` | 暗号化されたファイルの出力先を指定します | + | | バイナリデータ | アスキーデータ | | :---: | --- | --- | -| **利点** | ファイルサイズが元のファイルと変わらない | テキストエディタで開ける | -| **欠点** | テキストエディタでは開けない | ファイルサイズが膨らむ | +| **利点** | ファイルサイズが元のファイルと変わらない | テキストエディタで開ける、差分表示ができる | +| **欠点** | テキストエディタでは開けない、差分表示ができない | ファイルサイズが膨らむ | | **拡張子** | `.gpg` | `.asc` | @@ -55,7 +62,11 @@ gpg foo.zip.gpg zip -r foo.zip foo ``` -フォルダを圧縮する際は `-r` を付け忘れないように注意しましょう。付け忘れると空 ZIP ファイルになります。 +## 注意点 +* フォルダを圧縮する際は `-r` を付け忘れないように注意しましょう。付け忘れると空 ZIP ファイルになります。 +* 絶対パスを指定して圧縮すると展開したときにそのようなディレクトリ構造になってしまいます。また、圧縮前のフォルダ名は維持されます。 + +OS のファイル管理アプリ(Mac なら Finder、Windows なら Explorer)のほうが間違いがなくて良いかもしれません……。 @@ -66,9 +77,11 @@ zip -r foo.zip foo gpg --encrypt --recipient you@example.com foo.zip ``` -拡張子が `.gpg` のバイナリファイルが生成されるはずです。 +暗号化には `--encrypt` または `-e` オプションつけます。`--recipient` または `-r` オプションで該当する秘密鍵に使用したメールアドレス (署名 ID) を指定する必要があります。このオプションを省略した場合は実行時にインタラクティブ形式で求められます。 + +実行すると拡張子が `.gpg` のバイナリファイルが生成されるはずです。 -バイナリデータではなくアスキーデータ (テキストエディタで開ける形式) として保存したい場合は以下のように `--armor` オプションを付与します。 +バイナリデータではなくアスキーデータ (テキストエディタで開ける形式) として保存したい場合は以下のように `--armor` または `-a` オプションを付与します。 ```shell gpg --encrypt --recipient you@example.com --armor foo.zip @@ -76,13 +89,29 @@ gpg --encrypt --recipient you@example.com --armor foo.zip 拡張子が `.asc` のファイルが生成されます。このファイルはテキストエディタで開くことができます。ただしファイルサイズによっては開くと重くなりますのでご注意ください。 +デフォルトでは、暗号化されたファイルの出力先は暗号化前のファイルと同じディレクトリです。出力先を変更する場合は `--output` または `-o` オプションを指定します。 + +```shell +gpg --encrypt --recipient you@example.com --output /tmp foo.zip +``` + +## よく使用するオプション一覧 +上記で説明したよく使用するオプションの一覧を以下にまとめます。 + +| ロングオプション | ショートオプション | 説明 | +| --- | :---: | --- | +| `--encrypt` | `-e` | ファイルを暗号化します | +| `--recipient` | `-r` | 使用する秘密鍵を選択します | +| `--armor` | `-a` | バイナリではなくアスキーデータで出力します | +| `--output` | `-o` | 暗号化されたファイルの出力先を指定します | + ## バイナリデータとアスキーデータの違い 両者とも復号すれば全く同じファイルが復元できるため、基本的にはどちらでも良いと思います。主な違いは以下のとおりです。 | | バイナリデータ | アスキーデータ | | :---: | --- | --- | -| **利点** | ファイルサイズが元のファイルと変わらない | テキストエディタで開ける | -| **欠点** | テキストエディタでは開けない | ファイルサイズが膨らむ[^size] | +| **利点** | ファイルサイズが元のファイルと変わらない | テキストエディタで開ける、差分表示ができる | +| **欠点** | テキストエディタでは開けない、差分表示ができない | ファイルサイズが膨らむ[^size] | | **拡張子** | `.gpg` | `.asc` | [^size]: 筆者の環境で 1.37 GB の ZIP ファイルをこの方法で暗号化したところ 1.85 GB になりました。