ファイル名暗号化を使用してディレクトリを圧縮するには?

ファイル名暗号化を使用してディレクトリを圧縮するには?

コマンドラインを使用すると、次のようにディレクトリを暗号化できることがわかります。

zip -er Directory.zip /path/to/directory

ただし、これはファイル名自体を暗号化しません。誰かが実行している場合:

unzip Directory.zip

間違ったパスワードを繰り返し入力すると、unzipコマンドは正しいパスワードが入力されるまで含まれるすべてのファイル名を繰り返します。出力例:

unzip Directory.zip 
Archive:  Directory.zip
   creating: Directory/
[Directory.zip] Directory/sensitive-file-name-1 password: 
password incorrect--reenter: 
password incorrect--reenter: 
   skipping: Directory/sensitive-file-name-1  incorrect password
[Directory.zip] Directory/sensitive-file-name-2 password: 
password incorrect--reenter: 
password incorrect--reenter: 
   skipping: Directory/sensitive-file-name-2  incorrect password
[Directory.zip] Directory/sensitive-file-name-3 password: 
password incorrect--reenter: 
password incorrect--reenter: 
   skipping: Directory/sensitive-file-name-3  incorrect password

など。

コマンドラインを使用してファイル名自体を暗号化または非表示にしながら圧縮されたディレクトリを暗号化する方法はありますか?

ありがとうございます。

答え1

zipファイルでは、ファイルの内容のみが暗号化されます。ファイル名を含むファイルメタデータは暗号化されません。これはファイル形式の制限です。各項目は個別に圧縮され、暗号化されている場合は個別に暗号化されます。

あなたはそれを使用することができます7つのジッパー代わりに。 (-mhe=onLinuxコマンドライン経由)メタデータ暗号化をサポートしています。

7z a -p -mhe=on Directory.7z /path/to/directory

すべての主要オペレーティングシステムとほとんどのセカンダリオペレーティングシステムには7zip実装がありますが、追加のソフトウェアをインストールする必要があるかもしれません(IIRC Windowsは最近暗号化されたzipファイルを直接解凍することができます)。復号化に7zが必要なのが問題の場合は、zipを使用して最初にzipを使用してディレクトリを単一のファイルに圧縮し、そのファイルを暗号化できます。これにより、個々のファイルの圧縮をオフにし、外部zipにzipファイルを圧縮するように指示すると、全体の圧縮率が向上します。

zip -0 -r Directory.zip /path/to/directory
zip -e -n : encrypted.zip Directory.zip

答え2

お気に入りのツールを使用してアーカイブを作成し、それを使用してbcrypt暗号化/暗号解読を実行できます。

ㅏ)暗号化されたファイルを生成するには:

tar -czf Directory.tgz /path/to/directory
bcrypt Directory.tgz

これにより、Blowfish暗号化ファイルが提供されます。Directory.tgz

2)このプロセスを元に戻すには:

bcrypt Directory.tgz.bfe
tar -xf Directory.tgz

答え3

現時点では、どのように使用するかについて厳格な回答がないため圧縮ファイル名のリストとファイルの内容を暗号化するには、次のいずれかを使用します。他の回答で述べたように、zip暗号化は使用しているバージョンによっては安全でも安全ではない場合があります。とにかく技術的な観点からは、tarやgpgなどのツールが良いですが、問題がある場合持つ技術的な知識のないユーザーのためのポータブルアーカイブを作成する簡単な回避策(たとえば、zipのみを使用すると、7-zipをインストールできないか、インストールしない可能性があります...)は、真ん中に純粋なzipを使用して暗号化されたzipを使用します。作ることです。通常、追加のヘッダーには約200バイトしか追加しません。

% zip -r directory.zip secret-stuff
% zip -e -r directory-encrypted.zip directory.zip

その後、誰かがファイル名を一覧表示しようとした場合(またはパスワードの推測中にファイル名を公開しようとすると)、次の内容が表示されます。

% unzip -l directory-encrypted.zip
Archive:  directory-encrypted.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
  1747768  2023-02-14 04:45   directory.zip
---------                     -------
  1747768                     1 file

外部ジッパーを開けた後真ん中その後、以下をリストできます。

% unzip -l directory.zip # unencrypted intermediate archive
Archive:  directory.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2023-02-14 03:50   secret-stuff/
        0  2023-02-06 21:36   secret-stuff/really/
        0  2023-02-06 21:36   secret-stuff/really/totally/
  1844742  2023-02-06 19:44   secret-stuff/really/totally/uh-oh.pdf
    72279  2023-02-06 19:45   secret-stuff/really/totally/another-one.pdf
        0  2023-02-14 03:50   secret-stuff/really/oops/
      225  2023-02-14 03:50   secret-stuff/really/oops/file-list.txt
---------                     -------
  1917246                     7 files

関連情報