Anda harus menerapkan filosofi unix untuk tugas ini: satu alat untuk setiap tugas.
tarring dan kompresi adalah pekerjaan untuk tar
dan gzip
atau bzip2
, crypto adalah pekerjaan untuk salah satu gpg
atau openssl
:
Enkripsi
% tar cz folder_to_encrypt | \
openssl enc -aes-256-cbc -e > out.tar.gz.enc
Dekripsi
% openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz
Atau menggunakan gpg
% gpg --encrypt out.tar.gz
varian openssl menggunakan enkripsi simetri, Anda harus memberi tahu pihak penerima tentang 'kata sandi' yang digunakan (alias 'kunci'). varian gpg menggunakan kombinasi enkripsi simetris dan asimetrik, Anda menggunakan kunci dari pihak penerima (yang berarti bahwa Anda tidak harus memberi tahu kata sandi yang terlibat kepada siapa pun) untuk membuat kunci sesi dan crypt konten dengan kunci itu.
jika Anda membuka rute zip (atau 7z): pada dasarnya sama dengan varian openssl, Anda harus memberi tahu pihak penerima tentang kata sandi.
openssl aes-256-cbc -d -in out.tar.gz.enc -out decrypted.tar.gz
openssl enc -aes-256-cbc -e -in foo.tar.gz -out bar.tar.gz.enc
Jika maksud Anda adalah hanya melindungi file dengan kata sandi, maka gunakan utilitas zip tangan melalui baris perintah
-e meminta utilitas zip untuk mengenkripsi file yang disebutkan di
Contoh kerja:
sumber
Inilah beberapa cara untuk melakukan ini. Satu hal yang perlu diperhatikan adalah bahwa jika Anda akan menggunakan alat kompresi dan enkripsi yang terpisah, Anda harus selalu mengompres sebelum enkripsi, karena data yang dienkripsi pada dasarnya tidak dapat dikompres.
Contoh-contoh ini memampatkan dan mengenkripsi file yang disebut
clear_text
.Menggunakan
gpg
gpg akan memampatkan file input sebelum enkripsi secara default,
-c
artinya menggunakan enkripsi simetris dengan kata sandi. File output akan menjadiclear_text.gpg
. Salah satu manfaat menggunakangpg
adalah menggunakan format OpenPGP standar, sehingga setiap perangkat lunak enkripsi yang mendukung OpenPGP akan dapat mendekripsi.Menggunakan
mcrypt
The
-z
pilihan kompres. Secara default ini menghasilkan file yang disebutclear_text.gz.nc
.Menggunakan
bcrypt
bcrypt kompres sebelum mengenkripsi secara default,
-r
opsinya adalah agar file input tidak terhapus dalam proses. File output disebutclear_text.bfe
secara default.Menggunakan
gzip
danaespipe
aespipe adalah seperti apa itu, sebuah program yang mengambil input pada stdin dan output aes data terenkripsi pada stdout. Itu tidak mendukung kompresi, jadi Anda dapat menyalurkan input melalui gzip terlebih dahulu. Karena output menuju stdout, Anda harus mengarahkannya ke file dengan nama yang Anda pilih sendiri. Mungkin bukan cara yang paling efektif untuk melakukan apa yang Anda minta tetapi aespipe adalah alat serbaguna jadi saya pikir itu layak disebutkan.
sumber
Anda dapat menggunakan 7zip untuk membuat arsip yang dilindungi kata sandi Anda. Anda dapat menentukan kata sandi pada baris perintah (atau dalam skrip) dengan cara berikut:
7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt
7zip juga dapat membaca dari STDIN sebagai berikut:
cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z
Jika itu wajib untuk menggunakan file zip, Anda mungkin ingin bermain-main dengan
-t<type>
parameter (misalnya-tzip
).sumber
Baik tar, gzip, maupun bzip2 tidak mendukung perlindungan kata sandi. Baik menggunakan format kompresi yang berfungsi, seperti zip, atau mengenkripsi dengan alat lain seperti GnuPG.
sumber
-r
,.Buat dengan:
Ia akan meminta kata sandi Anda.
Dekripsi dengan:
sumber