musisz zastosować filozofię uniksową do tego zadania: jedno narzędzie dla każdego zadania.
tarowanie i kompresja jest to zadanie dla tar
a gzip
lub bzip2
, krypto jest praca dla obu gpg
lub openssl
:
Szyfruj
% tar cz folder_to_encrypt | \
openssl enc -aes-256-cbc -e > out.tar.gz.enc
Odszyfruj
% openssl enc -aes-256-cbc -d -in out.tar.gz.enc | tar xz
Lub używając gpg
% gpg --encrypt out.tar.gz
wariant openssl wykorzystuje szyfrowanie symetryczne, trzeba by było powiedzieć stronie odbierającej o używanym „haśle” (inaczej „kluczu”). wariant gpg wykorzystuje kombinację szyfrowania symetrycznego i asymetrycznego, używasz klucza strony odbierającej (co oznacza, że nie musisz nikomu podawać żadnego hasła), aby utworzyć klucz sesji i szyfrować zawartość za pomocą tego klucza.
jeśli wybierzesz trasę zip (lub 7z): zasadniczo jest to to samo, co wariant openssl, musisz powiedzieć stronie odbierającej o haśle.
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
Jeśli Twoim celem jest po prostu ochrona plików hasłem, użyj narzędzia do ręcznego zipowania za pomocą wiersza polecenia
-e prosi narzędzie zip o szyfrowanie plików wymienionych w
Przykład roboczy:
źródło
Oto kilka sposobów, aby to zrobić. Należy zauważyć, że jeśli zamierzasz korzystać z oddzielnych narzędzi do kompresji i szyfrowania, zawsze powinieneś kompresować przed szyfrowaniem, ponieważ zaszyfrowane dane są w zasadzie nieściśliwe.
Te przykłady kompresują i szyfrują plik o nazwie
clear_text
.Za pomocą
gpg
gpg domyślnie kompresuje plik wejściowy przed szyfrowaniem, co
-c
oznacza użycie szyfrowania symetrycznego z hasłem. Plik wyjściowy będzieclear_text.gpg
. Jedną z zalet używaniagpg
jest to, że używa standardowych formatów OpenPGP, więc każde oprogramowanie szyfrujące, które obsługuje OpenPGP, będzie mogło je odszyfrować.Za pomocą
mcrypt
-z
Opcja kompresuje. Domyślnie jest to plik o nazwieclear_text.gz.nc
.Za pomocą
bcrypt
bcrypt kompresuje się przed domyślnym szyfrowaniem,
-r
opcja jest taka, że plik wejściowy nie jest usuwany w procesie. Plik wyjściowy jest wywoływanyclear_text.bfe
domyślnie.Korzystanie
gzip
iaespipe
aespipe to, jak to brzmi, program, który pobiera dane wejściowe na standardowe wejście i wysyła zaszyfrowane dane na standardowe wyjście. Nie obsługuje kompresji, więc możesz najpierw przesłać dane wejściowe przez gzip. Ponieważ wyjście przechodzi do standardowego wyjścia, będziesz musiał przekierować go do pliku o wybranej przez siebie nazwie. Prawdopodobnie nie jest to najskuteczniejszy sposób na zrobienie tego, o co prosisz, ale aespipe to wszechstronne narzędzie, więc pomyślałem, że warto o tym wspomnieć.
źródło
Możesz użyć 7zip, aby utworzyć swoje archiwum chronione hasłem. Możesz określić hasło w wierszu poleceń (lub w skrypcie) w następujący sposób:
7z a -p<password> <someprotectedfile>.7z file1.txt file2.txt
7zip może również czytać ze STDIN w następujący sposób:
cat <somefile> | 7z a -si -p<password> <someprotectedfile>.7z
Jeśli użycie plików zip jest obowiązkowe, możesz chcieć bawić się z
-t<type>
parametrem (np-tzip
.).źródło
Ani tar, gzip, ani bzip2 nie obsługują ochrony hasłem. Użyj formatu kompresji, takiego jak zip, lub zaszyfruj go za pomocą innego narzędzia, takiego jak GnuPG.
źródło
-r
.Utwórz za pomocą:
Poprosi Cię o hasło.
Deszyfruj za pomocą:
źródło