Skip to content

Commit

Permalink
いくつか修正
Browse files Browse the repository at this point in the history
* ショートオプションの説明を追加
* --output の説明を追加
* zip コマンドの絶対パス指定に関する注意点を追加
  • Loading branch information
noraworld committed May 30, 2024
1 parent 9401a71 commit dcf9d83
Showing 1 changed file with 38 additions and 9 deletions.
47 changes: 38 additions & 9 deletions articles/gpg-file-encryption.md
Original file line number Diff line number Diff line change
Expand Up @@ -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` |


Expand Down Expand Up @@ -55,7 +62,11 @@ gpg foo.zip.gpg
zip -r foo.zip foo
```

フォルダを圧縮する際は `-r` を付け忘れないように注意しましょう。付け忘れると空 ZIP ファイルになります。
## 注意点
* フォルダを圧縮する際は `-r` を付け忘れないように注意しましょう。付け忘れると空 ZIP ファイルになります。
* 絶対パスを指定して圧縮すると展開したときにそのようなディレクトリ構造になってしまいます。また、圧縮前のフォルダ名は維持されます。

OS のファイル管理アプリ(Mac なら Finder、Windows なら Explorer)のほうが間違いがなくて良いかもしれません……。



Expand All @@ -66,23 +77,41 @@ 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
```

拡張子が `.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 になりました。
Expand Down

0 comments on commit dcf9d83

Please sign in to comment.