2010-07-12 12:50:47 +0000 2010-07-12 12:50:47 +0000
139
139

コマンドラインでgzipファイルをパスワードで保護するには?

Ubuntu 10.04でtarコマンドを使って、いくつかのtar.gzファイル(場合によってはtar.bz2)を作成したいと思います。

ファイルをパスワードで保護したい。

これを行うためのコマンドは何でしょうか(ググってみましたが、パスワードを使って圧縮ファイルを作成・解凍する方法を示すものは見つかりませんでした)。

誰かやり方を知っている人はいますか?

回答 (6)

165
165
165
2010-07-12 13:05:22 +0000

このタスクには unix の哲学を適用しなければなりません: 各タスクに1つのツールを使用します。

ターリングと圧縮はtargzipまたはbzip2のジョブであり、暗号化はgpgまたはopensslのどちらかのジョブである。

Encrypt

% tar cz folder_to_encrypt | \
      openssl enc -aes-256-cbc -e > out.tar.gz.enc

Decrypt

% openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz

Or using gpg

% gpg --encrypt out.tar.gz

openssl-variant はシンメトリック暗号化を使用するので、受信側に使用した「パスワード」(別名「鍵」)を伝える必要があります。gpg-variant はシンメトリック暗号化と非シンメトリック暗号化を組み合わせて使用していますが、受信側の鍵を使用してセッション鍵を作成し、その鍵でコンテンツを暗号化します。

zip (または 7z) ルートの場合: 基本的には openssl-variant と同じですが、受信側にパスワードを伝える必要があります。

31
31
31
2012-06-17 20:12:34 +0000

ファイルをパスワードで保護したい場合は、コマンドライン

zip -e <file_name>.zip <list_of_files>

-e で指定されたファイルを暗号化するように zip ユーティリティを使用します。

22
22
22
2014-05-01 01:38:27 +0000

これを行うためのいくつかの方法を紹介します。注意すべき点としては、圧縮と暗号化ツールを別々に使う場合は、暗号化する前に必ず圧縮しておくべきだということです。

これらの例では、clear_textというファイルを圧縮して暗号化しています。

gpg

$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress

gpgはデフォルトでは暗号化の前に入力ファイルを圧縮しますが、-cはパスワード付きの対称暗号化を使用することを意味します。出力ファイルはclear_text.gpgになります。gpgを使用する利点の一つは、標準のOpenPGPフォーマットを使用しているため、OpenPGPをサポートしている暗号化ソフトウェアであれば、どのような暗号化ソフトウェアでも復号することができるということです。

mcrypt

$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress

-zオプションは圧縮を行います。デフォルトでは、これは clear_text.gz.nc というファイルを出力します。

bcrypt

$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress

bcrypt は、デフォルトでは暗号化する前に圧縮します。出力ファイルはデフォルトでは-rと呼ばれます。

clear_text.bfegzip

$ cat clear_text | gzip | aespipe > clear_text.gz.aes #Compress & Encrypt
$ cat clear_text.gz.aes | aespipe -d | gunzip > clear_text #Decrypt & Decompress

aespipe はその名の通り、標準入力を受け取り、暗号化された aes データを標準出力に出力するプログラムです。これは圧縮をサポートしていないので、まず入力を gzip でパイプします。出力は標準出力に送られるので、自分で選んだ名前のファイルにリダイレクトする必要があります。おそらく、あなたが求めていることを行うための最も効果的な方法ではないでしょうが、aespipe は汎用性の高いツールなので、言及する価値があると思いました。

16
16
16
2014-10-17 09:52:46 +0000

7zip を使ってパスワードで保護されたアーカイブを作成することができます。コマンドライン (またはスクリプト) でパスワードを指定するには、次のようにします:

7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt

7zip は、次のように STDIN から読み込むこともできます。

cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z

zip ファイルの使用が必須の場合は、-t<type> パラメータ (例: -tzip) で遊んでみるのもいいかもしれません。

7
7
7
2010-07-12 12:52:34 +0000

tar、gzip、bzip2 はいずれもパスワード保護をサポートしていません。zip のようなパスワード保護をサポートしている圧縮形式を使うか、GnuPG のような別のツールで暗号化してください。

5
5
5
2017-05-23 12:25:37 +0000

で作成します。

tar czvf - directory | gpg --symmetric --cipher-algo aes256 -o passwordprotectedarchive.tar.gz.gpg

パスワードの入力を求められます。

復号化するには

gpg -d passwordprotectedarchive.tar.gz.gpg | tar xzvf -