はじめに
圧縮ファイルを暗号化する際にコマンドラインから作業することが稀に発生するのですが、そのたびに調べるのも手間なので備忘録として記事に起こしました。
似たような状況の方々の参考になれば幸いです。
なお本記事は強固な情報漏洩対策を目的としたものではなく、あくまで一時的・軽度な保護や運用上の利便性を重視したケースを想定しています。
※ こんな記事 もあるわけですが、それでも利用するシーンはあるわけで...。
zip
コマンドで簡易的に暗号化( ZipCrypto )
zip コマンドの形式
zip -e archive.zip file1 file2
zip コマンドのオプション説明
-
-e
オプション: 暗号化を行う -
archive.zip
: 作成される ZIP ファイル名 -
file1 file2
: 圧縮したいファイル( スペース区切りで複数指定可 )
zip コマンドの実行例
zip -e archive.zip resume1.pdf resume2.pdf
パスワードの 入力と確認 が求められます。
7z
( 7-Zip )を使用して AES-256 で暗号化( より強固 )
macOS では 7z
コマンドの代わりに 7zz
を使います( Homebrew でインストール可能 )。
7zz のインストール方法( macOS )
brew install p7zip
インストール後に 7zz
コマンドが利用可能になります。
7zz コマンドの形式
7zz a -tzip -p -mem=AES256 archive.zip file1 file2
7zz コマンドのオプション説明
-
a
: アーカイブ作成 -
-tzip
: ZIP形式で出力 -
-p
: パスワード指定 -
-mem=AES256
: AES-256 による強力な暗号化 -
archive.zip
: 作成される ZIP ファイル名 -
file1 file2
: 圧縮したいファイル( スペース区切りで複数指定可 )
7zz コマンドの実行例
7zz a -tzip -p -mem=AES256 archive.zip resume1.pdf resume2.pdf
このコマンドでは、実行時に安全な対話形式でパスワードが求められます。
パスワードを直接指定する形式( 非推奨 )
7zz a -tzip -phogehoge -mem=AES256 archive.zip resume1.pdf resume2.pdf
-p
のあとに直接パスワードを記述すると、コマンド履歴などに残ってしまうためセキュリティ上好ましくありません。
少しでも安全性を高めるために、対話形式( -p
のみ )での入力をおすすめします。
応用テクニック
フォルダを丸ごと圧縮する場合
zip を使用する場合
zip -r -e archive.zip target_folder
7zz を使用する場合
7zz a -tzip -p -mem=AES256 archive.zip target_folder
いずれもフォルダ構造を保持したまま、フォルダを暗号化して圧縮できます。
セキュリティ上の注意点
-
zip -e
による暗号化は ZipCrypto 方式で、暗号強度は高くありません。 - より強固な暗号化を求める場合は、AES-256 を使用できる
7z
の利用が推奨されます。
参考
zip
7zip