web-dev-qa-db-ja.com

Linuxでファイルまたはディレクトリを暗号化する方法は?

Linuxのターミナルでファイルまたはディレクトリを暗号化するなどの最も一般的なコマンドは何ですか?

27
user2195

私はそれがgpgになると思います。ただし、ファイルとディレクトリの構文は異なります。

暗号化

ファイルの場合(出力ファイル名.gpg):

gpg -c filename

Dirsの場合:

gpg-Zip -c -o file.gpg dirname

解読

ファイルの場合(出力ファイル名.gpg):

gpg filename.gpg

Dirsの場合:

gpg-Zip -d file.gpg

編集:@ Mk12が暗号化/復号化の圧縮/解凍の誤りを指摘したので修正。

33
celebdor
  • openssl

openssl des3 -salt -in unencrypted-data.tar -out encrypted-data.tar.des3

復号化:

openssl des3 -d -salt -in encrypted-data.tar.des3 -out unencrypted-data.tar

  • aESで暗号化する

aescrypt -e -p password file.jpg

復号化:

aescrypt -d -p password file.jpg.aes

10
jet

GnuPG を試してください。

暗号化するには:gpg -c filename

復号化するには:gpg filename.gpg

3
slhck

個人的にはaescryptを主に使用しています。

      aescrypt -e "File" 

そして解読:

      aescrypt -d "File"

またはmcryptがあります:

      mcrypt "File" 

そして解読:

      mcrypt -d "File"

また、ディレクトリの場合は、ディレクトリをtar化して暗号化することをお勧めします。次に、暗号化を解除した後、ファイルをuntarします。

      tar -cf "Dir.tar" Dir/

そして解凍する

      tar -xf "Dir.tar"
2
Matt

これはopensslとtarを使用する私の方法です

暗号化されたディレクトリを開く:

openssl enc -aes-256-cbc -d -in ~/vault.tar.gz.dat | tar xz; thunar ~/vault

暗号化されたディレクトリをロック:

tar cz vault/ | openssl enc -aes-256-cbc -out ~/vault.tar.gz.dat; rm -r ~/vault
2
Tom

最高レベルのセキュリティが大きな問題ではない場合(Zipのマニュアルページに、zipfileユーティリティで使用される暗号化アルゴリズムはPGPよりも弱いとあります)、Zipとunzipを使用します。それは私のディレクトリを圧縮し、同時に暗号化します。全体を再度圧縮して暗号化する代わりに、一種の増分Zipと暗号化を使用できるため、Zipを好みます。特に、ディレクトリのサイズが非常に大きい場合に役立ちます。

圧縮して暗号化

Zip file.Zip file
Zip -r directory.Zip directory
Zip --encrypt file.Zip.enc file # Prompt for password
Zip --encrypt -r directory.Zip.enc directory # Prompt for password

解凍して復号化する

unzip directory.Zip.enc #Beware if any directory is present with the same name as the zipped file, then it would be overwritten. Hence I normally send the contents to another directory.

unzip directory.Zip.enc -d directory-new # prompts for password
1
infoclogged

使用 FinalCrypt -壊れないワンタイムパッドオープンソースファイル/ディレクトリ暗号化(GUI&CLI)

それはそれ自体でワンタイムパッドキーを作成します

Java -cp FinalCrypt.jar rdj/CLUI --encrypt --password-Prompt -k My-Key-Directory/ -t My-Test-Directory/

パスワード:

4つのファイルの暗号化を合計249,7 MiB開始

???? "/home/ron/My-Test-Directory/Video/Eerebegraafplaats.mp4.bit" ???? ✔???? ✔????✔℄✔????✔SHA-256: "C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD9AAC4BE9FD1E955F947DA"-> "D53FCEADDF542AC3655B547778911F786C2C2BDD327A?58?92 ????????? "/home/ron/My-Test-Directory/Video/castle-waxjo-sweden.mp4.bit" ???? ✔???? ✔????✔℄✔????✔SHA-256: "8AEFC9744143451F32B82BBAC6A4291BC76C747A6DA1EA024702AA51A966F810"-> "323618B7ED12A1F92D8FFB306CEEC6DFFED6862B7BF3922902E8AED29DF57EC ?? "/home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf.bit" ???? ✔???? ✔????✔℄✔????✔SHA-256: "0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE"-> "266CE42027F891DECF109D7A9DD69E8B42C0E43D2E7C7EAC2EA7C7A7C9E7A7C9E7C2C0E43D7C7C7E9C7E9C2E9C7E9C2E9E1C0e0e0 「/ home/ron/My-Test-Directory/Brother dsmobile 700d_uke_usr.pdf.bit」???? ✔???? ✔????✔℄✔????✔SHA-256: "8D718D2F29EF05BEB347D6920B3BFF5269685421B428E8D3ADFF569F67A716E0"-> "88A98D893B6D1E540039D3E9BC0B0C19B46A10A3EE100E20E3EBE3E5EEB3E3E3E3E3E3E3E3E3E3E3E35E3E3E3EB

[4/4]ファイルの暗号化が完全に完了しました。7,3秒で合計[249,7 MiB/249,7 MiB](平均:34,2 MiB /秒)

Java -cp FinalCrypt.jar rdj/CLUI --decrypt --password-Prompt -k My-Key-Directory/ -t My-Test-Directory/

パスワード:

合計124,9 MiBの4つのファイルの復号化を開始

???? "/home/ron/My-Test-Directory/Video/castle-waxjo-sweden.mp4" ???? HA ????✔℄✔????✔SHA-256: "323618B7ED12A1F92D8FFB306CEEC6DFFED6862B7BF3922902E8AED29DF57ECE"-> "8AEFC9744143451F32B82BBAC6A4291BC76C747A6DA1EA024702AA51?966F810? "/home/ron/My-Test-Directory/Video/Eerebegraafplaats.mp4" ???? ✔????✔℄✔????✔SHA-256: "D53FCEADDF542AC3655B547778911F786C2C2BDD327E0618A9E7F77B57792DEA"-> "C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD ?????????? 「/ home/ron/My-Test-Directory/Brother dsmobile 700d_uke_usr.pdf」???? ✔????✔℄✔???? 6 SHA-256: "88A98D893B6D1E540039D3E9BC0B0C19B46A10A209967F3235D5DEEBF073EC1E"-> "8D718D2F29EF05BEB347D6920B3BFF526968542A ?????????? "/home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf" ???? ✔????✔℄✔????✔SHA-256: "266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C"-> "0858D2D5A8CF118D40B517CD4A1F8D31D9F5A215E23B3FE5B21FE5A2122136375

[4/4]ファイルの復号化を完全に完了しました[3,4秒で平均[124,9 MiB/124,9 MiB](平均:36,3 MiB /秒)

これにはGUIもあります

コミュニティを支援しようとしています...

0
Ron de Jong

人気がないかもしれませんが、私はいくつかのBashスクリプトを使用して最小限のユーザー操作で何かを暗号化/復号化するプロジェクトに取り組んでいます。テスト用の設定を説明する Hak5 投稿へのリンクです。

上記のリンクされたプロジェクトで処理できるデータの種類ごとに何が起こるかは次のとおりですが、ソースコードロジックを切り抜けます

_gnupg_encrypt_opts="--always-trust --armor --batch --encrypt --recipient [email protected]"
 _bulk_output_dir="some_path"
_arbitrary_parsed_output="some_file.gpg"
## If file make encrypted time stamped file with similar name
_path_to_file="${_mapped_input}"
_path_to_output="${_bulk_output_dir}/$(date -u +%s)_${_path_to_file##*/}.gpg"
cat "${_path_to_file}" | gpg ${gpg _gnupg_encrypt_opts} > "${_path_to_output}"
## else if directory make compressed encrypted time stamped output file
_path_to_dir="${_mapped_input}"
_path_to_output="${_bulk_output_dir}/$(date -u +%s)_dir.tgz.gpg
tar -cz - "${_path_to_dir}" | gpg ${gpg _gnupg_encrypt_opts} > "${_path_to_output}"
## else if something else append encrypted output to file
_path_to_output="${_arbitrary_parsed_output}"
cat <<<"${_mapped_input}" | gpg ${gpg _gnupg_encrypt_opts} >> "${_path_to_output}"

${_mapped_input}変数は、mkfifo名前付きパイプファイルを読み取り、読み取ったものをmapfile -t _lines < "${_file_to_map}"を使用して配列に設定し、後で展開して${_mapped_input}...に保存します。少し複雑ですが、実験的な機能を個々の行に作用させることができます。最終結果は、暗号化されたファイルまたは圧縮されたディレクトリを保持するためのディレクトリと、暗号化されたデータのさまざまなパケットを含むファイルになります。

ファイルまたは圧縮ディレクトリの復号化は、暗号化に使用される公開鍵に関連する秘密鍵を持つデバイスで十分に簡単です。ただし、複数の鎧で暗号化されたデータパケットの復号化は少し難しいため、上記のプロジェクトにParanoid_Pipes_Scenario_One.shという名前のスクリプトがあり、最小限のユーザー操作ですべてを行うように記述されています。以下は、通常の暗号化されたファイルとディレクトリのヘルパースクリプトのソースコードの簡略版です。

_gnupg_decrypt_opts="--quiet --no-tty --always-trust --passphrase-fd 9 --decrypt"
_decryption_output_dir="some_directory"
# if file
exec 9<"${_pass[@]}"
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.gpg*}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} > "${_decryption_output_dir}/${_output_name}"
# else if compressed file
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.tgz.gpg*}"
mkdir -p "${_decryption_output_dir}/${_output_name}"
_old_pwd="${PWD}"
cd "${_decryption_output_dir}/${_output_name}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} | tar -xzf -
cd "${_old_pwd}"
# else if non-compressed directory
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.tar.gpg*}"
mkdir -p "${_decryption_output_dir}/${_output_name}"
_old_pwd="${PWD}"
cd "${_decryption_output_dir}/${_output_name}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} | tar -xf -
cd "${_old_pwd}"

他の機能が公に検証可能な方法で機能し、テストされていることを確認したい場合は、 Travis-CI ビルドログ(特にログの最後近く)を確認してください。他にもいくつかあります。ほぼすべてのデータの暗号化と復号化に関連して取り組んでいる豪華なもの。

0
S0AndS0