Bagaimana cara mengenkripsi file atau direktori di Linux?


26

Apa perintah paling populer untuk melakukan hal-hal seperti mengenkripsi file atau direktori di terminal di Linux?

Jawaban:


31

Saya pikir itu akan menjadi gpg. Sintaks untuk file dan direktori berbeda.

Enkripsi

Untuk file (output filename.gpg):

gpg -c filename

Untuk dirs:

gpg-zip -c -o file.gpg dirname

Dekripsi

Untuk file (output filename.gpg):

gpg filename.gpg

Untuk dirs:

gpg-zip -d file.gpg

Sunting: Dikoreksi karena @ Mk12 menunjukkan kesalahan kompresi / dekompresi untuk enkripsi / dekripsi.


Bukankah seharusnya "Enkripsi" dan "Dekripsi"?
mk12

Tidak ada yang mengatakan bagaimana cara mengenkripsi direktori.
chovy

1
@chovy Bukan yang di atasnya tertulis: Untuk dirs: gpg-zip -c -o file.gpg dirname
celebdor

@celebdor melewatkan yang itu. Terima kasih. sunting: itu tidak berhasil untuk saya. Saya mendapatkan beberapa keluaran terenkripsi yang aneh ketika saya mendekripsi file.
chovy

@ chovy: Maaf mendengarnya. Saya dapat mengonfirmasi bahwa mengenkripsi dan mendekripsi direktori seperti yang ditunjukkan di atas bekerja untuk saya, menggunakan gpg-zip (GnuPG) 1.4.16 di bawah Mint 17.
Michael Scheper

10
  • dengan openssl

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

Dekripsi:

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

  • mengenkripsi dengan AES

aescrypt -e -p password file.jpg

Dekripsi:

aescrypt -d -p password file.jpg.aes


1
+1 untuk menunjukkan cara melakukannya dengan openssl, yang kemungkinan besar tersedia di luar kotak.
DevSolar

Memang, tetapi 3DES dianggap tidak aman dan tidak boleh digunakan, AES (aescrypt) adalah pilihan yang jauh lebih baik, lihat: stackoverflow.com/questions/1619212/…
jmng

2

Coba GnuPG .

Untuk mengenkripsi: gpg -c filename

Untuk mendekripsi: gpg filename.gpg


2

Ini adalah metode saya menggunakan openssl dan tar

Buka Direktori Terenkripsi:

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

Mengunci Direktori Terenkripsi:

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

1
rm -rtidak menghapus data; itu hanya memutuskan tautannya. Anda harus menggunakan sesuatu seperti srmuntuk menghapus data dari disk.
jbindel

2

Saya pribadi menggunakan aescryptsebagian besar.

      aescrypt -e "File" 

dan dekripsi:

      aescrypt -d "File"

Atau ada mcrypt:

      mcrypt "File" 

dan dekripsi:

      mcrypt -d "File"

Dan untuk direktori, saya sarankan tar'ing dir, dan mengenkripsi itu. Kemudian setelah membukaencrypting, cukup undar file:

      tar -cf "Dir.tar" Dir/

dan untar

      tar -xf "Dir.tar"

1

Jika tingkat keamanan tertinggi bukan masalah besar (halaman manual zip mengatakan, bahwa algoritma enkripsi yang digunakan oleh utilitas zipfile lebih lemah daripada PGP), maka saya lebih suka zip dan unzip. Ritsleting direktori saya dan mengenkripsi pada saat yang sama. Saya lebih suka zip karena Anda dapat memiliki semacam zip inkremental dan mengenkripsi alih-alih zip dan mengenkripsi semuanya lagi. Terutama itu berguna ketika ukuran direktori sangat besar.

ZIP dan mengenkripsi

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 dan dekripsi

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

0

Mungkin tidak populer tetapi saya telah mengerjakan proyek untuk mengenkripsi / mendekripsi apa pun dengan interaksi pengguna minimal melalui penggunaan beberapa skrip Bash. Berikut ini tautan ke pos Hak5 yang menjelaskan pengaturan untuk pengujian.

Memotong logika kode sumber meskipun inilah yang terjadi untuk setiap jenis data yang dapat ditangani oleh proyek tertaut di atas

_gnupg_encrypt_opts="--always-trust --armor --batch --encrypt --recipient user@host.domain"
 _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}"

The ${_mapped_input}variabel diatur dengan membacamkfifo file yang bernama pipa dan pengaturan apa pun membaca ke array dengan mapfile -t _lines < "${_file_to_map}"yang kemudian diperluas dan disimpan ke ${_mapped_input}... sedikit berbelit-belit tetapi memungkinkan untuk fitur eksperimental untuk bertindak atas garis individu. Hasil akhirnya adalah Anda berakhir dengan direktori untuk menyimpan file terenkripsi atau direktori terkompresi dan file dengan berbagai paket data terenkripsi.

Dekripsi untuk file atau direktori terkompresi cukup sederhana pada perangkat dengan kunci pribadi yang terkait dengan kunci publik yang digunakan untuk enkripsi. Tapi dekripsi beberapa paket data terenkripsi armor sedikit lebih keras, jadi ada sebuah skrip bernamaParanoid_Pipes_Scenario_One.sh dalam proyek di atas ditulis untuk melakukan semuanya dengan interaksi pengguna yang minimal. Di bawah ini adalah versi sederhana dari kode sumber skrip pembantu untuk file dan direktori terenkripsi normal.

_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}"

Jika Anda ingin melihat fitur apa yang berfungsi dan diuji dengan cara yang dapat diverifikasi untuk umum, maka periksa log build Travis-CI (terutama di dekat bagian akhir log) Anda akan menemukan ada beberapa hal mewah lain yang sedang dikerjakan terkait untuk enkripsi dan dekripsi hampir semua data.


0

Gunakan FinalCrypt - One-Time Pad Unlimitedable OpenSource File / Direktori Enkripsi (GUI & CLI)

Ini menciptakan kunci Pad Sekali Kali dengan sendirinya

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

Kata sandi:

Mulai mengenkripsi 4 file dengan total 249,7 MiB

πŸ”’ "/home/ron/My-Test-Directory/Video/Eerebegraafplaats.mp4.bit" πŸ— βœ” πŸ–† βœ” πŸ”’βœ” β„„βœ” πŸ—‘βœ” SHA-256: "C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD9AAC4BE9FD1E955F947DA" -> "D53FCEADDF542AC3655B547778911F786C2C2BDD327E0618A9E7F77B57792DEA" 58,4% πŸ”’ "/ home / ron / My-Test-Directory / Video / castle-waxjo-sweden.mp4.bit "πŸ— βœ” βœ” βœ” βœ” βœ”βœ” β„„βœ” πŸ—‘βœ” SHA-256:" 8AEFC9744143451F32B82BBAC6A42DABC1C047702AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA /home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf.bit" πŸ— βœ” πŸ–† βœ” πŸ”’βœ” β„„βœ” πŸ—‘βœ” SHA-256: "0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE" -> "266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C" 95,7% πŸ”’ "/ Home / ron / My-Test-direktori / Saudara dsmobile 700d_uke_usr.pdf.bit" πŸ— βœ” πŸ–† βœ” πŸ”’βœ” β„„βœ” πŸ—‘βœ” SHA-256: "8D718D2F29EF05BEB347D6920B3BFF5269685421B428E8D3ADFF569F67A716E0" -> "88A98D893B6D1E540039D3E9BC0B0C19B46A10A209967F3235D5DEEBF073EC1E" 100,0%

Mengenkripsi file [4/4] selesai total [249,7 MiB / 249,7 MiB] dalam 7,3 detik (rata-rata: 34,2 MiB / s)

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

Kata sandi:

Mulai mendekripsi 4 file total 124,9 MiB

πŸ”“ "/home/ron/My-Test-Directory/Video/castle-waxjo-sweden.mp4" πŸ–ƒ βœ” πŸ”“βœ” β„„βœ” πŸ—‘βœ” SHA-256: "323618B7ED12A1F92D8FFB306CEEC6DFFED6862B7BF3922902E8AED29DF57ECE" -> "8AEFC9744143451F32B82BBAC6A4291BC76C747A6DA1EA024702AA51A966F810" 32,8% πŸ”“ "/ home / ron / My-Test-direktori / Video / Eerebegraafplaats.mp4" πŸ–ƒ βœ” πŸ”“βœ” β„„βœ” πŸ—‘βœ” SHA-256: "D53FCEADDF542AC3655B547778911F786C2C2BDD327E0618A9E7F77B57792DEA" -> "C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD9AAC4BE9FD1E955F947DA" 91,2% πŸ”“ "/ home / ron / My-Test -Direktori / Bruder dsmobile 700d_uke_usr.pdf "πŸ–ƒ βœ” πŸ”“βœ” β„„βœ” πŸ—‘βœ” SHA-256:" 88A98D893B6D1E540039D3E9BC0B0C19B46A10A209967F3235D5DBABF073EC1DFBBBBB09090_07_07_07_07_07_07_Bi_07_Bi_Bi_DFB_Bi_DF_DFBBBB0DFDFDDFDDFDDFDDX/home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf" πŸ–ƒ βœ” πŸ”“βœ” β„„βœ” πŸ—‘βœ” SHA-256: "266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C" -> "0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE" 100,0%

File dekripsi selesai [4/4] total [124,9 MiB / 124,9 MiB] total dalam 3,4 detik (rata-rata: 36,3 MiB / s)

Ini juga memiliki GUI

Hanya berusaha membantu masyarakat ...



FinalCrypt 5 menambahkan Kunci Otomatis dan membuat Kunci OTP secara otomatis sehingga diskusi yang dirujuk Scott tidak lagi relevan
Ron de Jong

Saya ingin melihat deskripsi cara kerjanya yang lebih teknis dan kurang melambaikan tangan. Masalahnya adalah bahwa bantalan sekali pakai (1) bagus untuk pengiriman data, dan buruk untukβ€― penyimpanan, dan (2) harus acak.  Jika OTP FinalCrypt benar-benar acak, maka mereka harus disimpan, yang membahayakan keamanan. Jika mereka dapat diregenerasi, maka mereka tidak acak, tetapi hanya pseudo-acak, sehingga mereka bukan OTP yang tepat. … (Lanjutan)
Scott

(Lanjutan) ... Halaman mereka tentangβ€― Manajemen Kunci Otomatis menunjukkan bahwa OTP disimpan β€œpada drive eksternal (USB) yang dapat dilepas. "Oke, itu bisa berhasil. Tetapi, jika Anda harus melampirkan drive USB Anda setiap kali Anda ingin mendekripsi file Anda (dan mengingat bahwa OTP harus setidaknya sebesar file yang dienkripsi), Anda mungkin juga hanya menyimpan file Anda pada drive yang dapat dilepas dan tidak repot dengan enkripsi. … (Lanjutan)
Scott

(Lanjutan) ... Juga, halaman FinalCrypt utama mengatakan "sebagian besar perangkat lunak kripto menggunakan AES yang rusak ...", tetapi mengklaim bahwa AES "rusak" tampaknya sangat dilebih-lebihkan. Terkait: Mengapa AES dianggap aman? (diβ€― Pertukaran Kriptografi Kriptografi ).
Scott
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.