Mengenkripsi dan mengompresi


28

Apakah ada cara yang lebih baik untuk kompres dan kemudian mengenkripsi file selain tardiikuti oleh opensslatau gpg?


3
Itu tergantung. Apa kebutuhan anda Bagaimana Anda mengukur "terbaik"? Alat apa yang Anda miliki? Sudahkah Anda mempertimbangkan opsi lain yang mungkin berguna untuk disebutkan?
Greg Hewgill

Belum dianggap orang lain. Hanya perlu enkripsi dasar, di mana seseorang tidak dapat membaca konten file, dan lebih baik mempertahankan rasio kompresi yang baik.
user75027

1
Umumnya jawabannya adalah tidak. Salah satu inti filosofi unix adalah "melakukan satu hal dan melakukannya dengan baik". tar -zadalah sedikit pengecualian karena ini adalah praktik yang sangat umum.
Patrick

1
tarVersi yang lebih baru mendukung kompresi xz (flag -J) yang rasio kompresinya biasanya lebih baik daripada kompresi gzip ( -z) atau bzip2 ( -j) yang lebih tradisional .
jofel

Saya perhatikan itu xzluar biasa. Saya ingat mengunduh kernel dan di-zip sekitar 1/7 dari ukuran aslinya. Saya kira saya akan tar cvJf out.tar.xz file1 [file2...]dan kemudian menggunakan gpg atau openssl untuk mengenkripsi itu. Saya juga memperhatikan bahwa xz sangat cepat. Bagaimana cara menghasilkan kompresi yang lebih baik daripada bz2 dan masih cepat?
user75027

Jawaban:


24

taradalah alat yang biasa untuk membundel file. Polos taritu sendiri tidak kompres. Ada alat yang terpisah seperti gzip , bzip2 dan xz (dalam urutan rasio kompresi pada file khas) yang mengkompres satu file. Banyak tarimplementasi, termasuk tar GNU (implementasi normal di Linux), dapat secara otomatis mengompres dengan opsi ( -zuntuk gzip, -juntuk bzip2, -Juntuk xz):

tar -cJf myarchive.tar.xz file1 file2 file3

Untuk mengenkripsi file, gunakan gpg . Buat kunci dan kaitkan dengan alamat email Anda (pengidentifikasi kunci GPG / PGP biasanya berisi alamat email, meskipun itu tidak perlu). Enkripsi file Anda, tentukan email Anda sebagai penerima. Untuk mendekripsi file, Anda harus memasukkan frasa sandi untuk membuka kunci kunci pribadi Anda.

GPG juga memungkinkan Anda mengenkripsi file dengan kata sandi. Ini kurang aman dan kurang fleksibel. Itu kurang fleksibel karena Anda perlu menentukan kata sandi saat mengenkripsi (jadi misalnya Anda tidak dapat membuat cadangan tanpa pengawasan). Itu kurang aman karena satu-satunya keamanan adalah kata sandi, sedangkan enkripsi berbasis kunci membagi keamanan antara kata sandi dan kunci.

Jangan gunakan opensslalat baris perintah. Ini adalah karya untuk perpustakaan OpenSSL, tidak dirancang untuk penggunaan produksi. Meskipun Anda dapat melakukan beberapa hal dengan itu (khususnya, itu memang memiliki semua primitif yang diperlukan untuk otoritas sertifikasi dasar), sulit untuk digunakan dengan benar dan tidak memiliki semua yang Anda butuhkan untuk melakukan sesuatu dengan benar. Di mana GPG memberi Anda sepeda, OpenSSL memberi Anda beberapa batang logam dengan berbagai ukuran dan beberapa ruang karet (sekrup dan pompa tidak termasuk). Gunakan GPG.


Saya mengerti tar sebagai bundler dan metode kompresi. Namun, kunci gpg baru bagi saya. Saya tidak benar-benar mengerti bagaimana menggunakannya, walaupun saya memiliki kunci. Kupikir. Saya pikir saya juga punya kunci ssh.
user75027

Inilah yang saya cari untuk mengompres dan mengenkripsi dengan satu perintah (menggunakan tardan gpgdalam pipa).
CGFoX

12

Anda dapat menggunakan 7zip:

7z a -p -mhe=on stuff.7z MyStuff
   ^  ^     ^      ^        ^
   |  |     |      |        `--- Files/directories to compress & encrypt.
   |  |     |      `--- Output filename
   |  |      `--- Encrypt filenames
   |  `---- Use a password
   `---- Add files to archive

Ini akan meminta Anda untuk kata sandi. Rupanya ia menggunakan AES-256 untuk enkripsi dan SHA-256 dari kata sandi dan sebuah penghitung diulang sebanyak 512 ribu kali untuk derivasi kunci.

Sunting : Ini tidak mengenkripsi nama file, jadi Anda mungkin ingin tarsemuanya terlebih dahulu.

Edit 2 : Ditambahkan -mhe=on.


5
Jika Anda menggunakan, 7zaAnda dapat mengenkripsi nama file dengan -mhe=onopsi.
SilverlightFox

3

Jadi, Anda juga dapat menggunakan nama file enkripsi 7zip:

7z a -p -mhe=on stuff.7z MyStuff
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.