Skip to content

Commit

Permalink
文言とフォーマットを一部更新
Browse files Browse the repository at this point in the history
  • Loading branch information
noraworld committed May 31, 2024
1 parent f38e9a6 commit e88711f
Showing 1 changed file with 22 additions and 17 deletions.
39 changes: 22 additions & 17 deletions articles/gpg-file-encryption.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ published: true
zip -r foo.zip foo

# 暗号化
gpg -e -r [email protected] -o /tmp/encrypted.zip.gpg foo.zip # バイナリデータ
gpg -e -r [email protected] -o /tmp/encrypted.zip.gpg -a foo.zip # アスキーデータ
gpg -e -o /tmp/encrypted.zip.gpg -r [email protected] foo.zip # バイナリデータ
gpg -a -e -o /tmp/encrypted.zip.gpg -r [email protected] foo.zip # アスキーデータ

# 復号
gpg -d -o /tmp/decrypted.zip encrypted.zip.gpg
Expand All @@ -28,8 +28,8 @@ gpg -d -o /tmp/decrypted.zip encrypted.zip.gpg

| | バイナリデータ | アスキーデータ |
| :---: | --- | --- |
| **利点** | ファイルサイズが元のファイルと変わらない | テキストエディタで開ける差分表示ができる |
| **欠点** | テキストエディタでは開けない差分表示ができない | ファイルサイズが膨らむ |
| **利点** | ファイルサイズが元のファイルと変わらない | テキストエディタで開ける<br>• 差分表示ができる |
| **欠点** | テキストエディタでは開けない<br>• 差分表示ができない | ファイルサイズが膨らむ |
| **拡張子** | `.gpg` | `.asc` |


Expand All @@ -54,13 +54,13 @@ gpg -d -o /tmp/decrypted.zip encrypted.zip.gpg
# フォルダを圧縮
フォルダを直接的に暗号化することはできませんので、まずはフォルダを圧縮して ZIP ファイルにまとめます。フォルダではなくファイルを暗号化する場合はこの手順はスキップしてください。

カレントディレクトリにある `foo` というフォルダを圧縮するには以下のコマンドを実行します。以下の例では、ZIP ファイル `foo.zip` が生成されるはずです。
カレントディレクトリにある `foo` というフォルダを圧縮するには以下のコマンドを実行します。

```shell
zip -r foo.zip foo
```

## 注意点
* 上記の例では同ディレクトリに ZIP ファイル `foo.zip` が生成されるはずです
* **フォルダを圧縮する際は `-r` を付け忘れないように注意しましょう**
* 付け忘れると空 ZIP ファイルになります
* 絶対パスを指定すると展開したときにそのようなディレクトリ構造になってしまいます
Expand All @@ -71,23 +71,25 @@ zip -r foo.zip foo


# 暗号化
ファイルを暗号化するには以下のコマンドを実行します。以下の例では、暗号化されたファイル `foo.zip.gpg` が生成されるはずです。
ファイルを暗号化するには以下のコマンドを実行します。

```shell
gpg --encrypt --recipient [email protected] foo.zip
```

* 上記の例では同ディレクトリに暗号化されたファイル `foo.zip.gpg` が生成されるはずです
* 暗号化には `--encrypt` または `-e` オプションをつけます
* `--recipient` または `-r` オプションを指定して、利用する秘密鍵に登録したメールアドレスを指定する必要があります
* `--recipient` または `-r` オプションを使用して、利用する秘密鍵に登録したメールアドレスを指定する必要があります
* このオプションを省略した場合は実行時にインタラクティブ形式で求められます

## アスキーデータで保存
バイナリデータではなくアスキーデータ(テキストエディタで開ける形式)として保存したい場合は以下のように `--armor` または `-a` オプションを付与します。以下の例では、暗号化されたファイル `foo.zip.asc` が生成されるはずです。
バイナリデータではなくアスキーデータ(テキストエディタで開ける形式)として保存したい場合は以下のように `--armor` または `-a` オプションを付与します。

```shell
gpg --armor --encrypt --recipient [email protected] foo.zip
```

* 上記の例では同ディレクトリに暗号化されたファイル `foo.zip.asc` が生成されるはずです
* このファイルはテキストエディタで開くことができます
* ただしファイルサイズによっては開くと重くなりますのでご注意ください

Expand All @@ -96,21 +98,22 @@ gpg --armor --encrypt --recipient [email protected] foo.zip

| | バイナリデータ | アスキーデータ |
| :---: | --- | --- |
| **利点** | ファイルサイズが元のファイルと変わらない | テキストエディタで開ける差分表示ができる |
| **欠点** | テキストエディタでは開けない差分表示ができない | ファイルサイズが膨らむ [^size] |
| **利点** | ファイルサイズが元のファイルと変わらない | テキストエディタで開ける<br>• 差分表示ができる |
| **欠点** | テキストエディタでは開けない<br>• 差分表示ができない | ファイルサイズが膨らむ [^size] |
| **拡張子** | `.gpg` | `.asc` |

[^size]: 筆者の環境で 1.37 GB の ZIP ファイルをこの方法で暗号化したところ 1.85 GB になりました。

## 出力先を変更
デフォルトでは、暗号化されたファイルの出力先は暗号化前のファイルと同じディレクトリです。出力先を変更する場合は `--output` または `-o` オプションを指定します。以下の例では `/tmp/encrypted.zip.gpg` が生成されるはずです。
デフォルトでは、暗号化されたファイルの出力先は暗号化前のファイルと同じディレクトリです。出力先を変更する場合は `--output` または `-o` オプションを指定します。

```shell
gpg --encrypt --output /tmp/encrypted.zip.gpg --recipient [email protected] foo.zip
```

* **ディレクトリ名で終わるとそのディレクトリが暗号化ファイルになってしまいます**
* ファイル名まで含めて指定してください
* 上記の例では `/tmp/encrypted.zip.gpg` が生成されるはずです
* **ファイル名まで含めて指定してください**
* ディレクトリ名で終わるとそのディレクトリが暗号化ファイルになってしまうのでご注意ください

## よく使用するオプション一覧
上記で説明したよく使用するオプションの一覧を以下にまとめます。
Expand All @@ -125,15 +128,17 @@ gpg --encrypt --output /tmp/encrypted.zip.gpg --recipient [email protected] foo.zi


# 復号
暗号化したファイルを復号するには以下のコマンドを実行します。元のファイル `foo.zip` が生成されるはずです。
暗号化したファイルを復号するには以下のコマンドを実行します。

```shell
gpg foo.zip.gpg
```

* 上記の例では同ディレクトリに復号されたファイル `foo.zip` が生成されるはずです
* 暗号化のとき同様に `--output` または `-o` オプションが利用可能です
* 復号には `--decrypt` または `-d` オプションを明示的に指定することもできます
* ただし、通常は勝手に推測してくれるので省略可能です
* このオプションを指定した場合は `--output` または `-o` オプションを指定しないと、ファイルではなくターミナルに標準出力されてしまうのでご注意ください
* ただし通常は勝手に推測してくれるので省略可能です
* このオプションを指定した場合は `--output` または `-o` オプションを指定しないと、ファイルではなくターミナルに標準出力されてしまうのでご注意ください(下記コマンド参照)

```shell
gpg --decrypt --output /tmp/decrypted.zip foo.zip.gpg
Expand Down

0 comments on commit e88711f

Please sign in to comment.