Szyfrowanie i kompresja


28

Czy istnieje lepszy sposób do kompresji i szyfrowania plików, a następnie inny niż tarnastępuje opensslalbo gpg?


3
To zależy. Jakie są twoje wymagania Jak oceniasz „najlepiej”? Jakie masz narzędzia? Czy zastanawiałeś się już nad innymi opcjami, o których warto wspomnieć?
Greg Hewgill

Nie rozważałem żadnych innych. Musi to być tylko podstawowe szyfrowanie, w którym ktoś nie może odczytać zawartości pliku, a najlepiej utrzymać dobry współczynnik kompresji.
user75027

1
Ogólnie odpowiedź brzmi „nie”. Jedną z podstawowych filozofii unixowych jest „rób jedną rzecz i rób to dobrze”. tar -zto niewielki wyjątek, ponieważ jest to bardzo powszechna praktyka.
Patrick

1
Nowsze tarwersje obsługują kompresję xz (flagę -J), której współczynnik kompresji jest zwykle lepszy niż bardziej tradycyjna kompresja gzip ( -z) lub bzip2 ( -j).
jofel

Zauważyłem, że xzjest to doskonałe. Pamiętam, że pobierałem jądro i zostało ono spakowane do około 1/7 oryginalnego rozmiaru. Chyba tar cvJf out.tar.xz file1 [file2...]użyję gpg lub openssl, aby je zaszyfrować. Zauważam również, że xz jest bardzo szybki. Jak osiąga lepszą kompresję niż bz2 i nadal jest szybki?
user75027

Odpowiedzi:


24

tarjest zwykłym narzędziem do pakowania plików. Zwykły tarsam się nie kompresuje. Istnieją osobne narzędzia, takie jak gzip , bzip2 i xz (w rosnącym stopniu współczynnika kompresji w typowych plikach), które kompresują jeden plik. Wiele tarimplementacji, w tym tar GNU (normalna implementacja w systemie Linux), może automatycznie kompresować z opcją ( -zdla gzip, -jdla bzip2, -Jdla xz):

tar -cJf myarchive.tar.xz file1 file2 file3

Aby zaszyfrować plik, użyj gpg . Utwórz klucz i powiąż go ze swoim adresem e-mail (identyfikatory kluczy GPG / PGP zwykle zawierają adres e-mail, choć nie jest to konieczne). Zaszyfruj swoje pliki, określając adres e-mail jako odbiorcę. Aby odszyfrować plik, musisz wprowadzić hasło, aby odblokować klucz prywatny.

GPG umożliwia także szyfrowanie pliku za pomocą hasła. Jest to mniej bezpieczne i mniej elastyczne. Jest mniej elastyczny, ponieważ musisz podać hasło podczas szyfrowania (więc na przykład nie możesz wykonywać nienadzorowanych kopii zapasowych). Jest mniej bezpieczny, ponieważ jedynym zabezpieczeniem jest hasło, podczas gdy szyfrowanie oparte na kluczach dzieli bezpieczeństwo między hasłem a kluczem.

Nie używaj opensslnarzędzia wiersza poleceń. Jest to prezentacja biblioteki OpenSSL, nieprzeznaczona do użytku produkcyjnego. Chociaż możesz z nim robić pewne rzeczy (w szczególności ma on wszystkie prymitywne elementy potrzebne do podstawowego urzędu certyfikacji), jest trudny do prawidłowego użycia i nie ma wszystkiego, czego potrzebujesz, aby zrobić to dobrze. Tam, gdzie GPG daje ci rower, OpenSSL daje ci kilka metalowych prętów o różnych rozmiarach i kilka gumowych komór (śruby i pompa nie są dołączone). Użyj GPG.


Rozumiem, że tar jest pakietem i metodami kompresji. Jednak klucze gpg są dla mnie nowe. Nie do końca rozumiem, jak go używać, choć mam klucz. Myślę. Myślę, że mam także klucze ssh.
user75027

Właśnie tego szukałem do kompresji i szyfrowania za pomocą jednego polecenia (za pomocą tari gpgw potoku).
CGFoX

12

Możesz użyć 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

Pojawi się monit o podanie hasła. Najwyraźniej używa AES-256 do szyfrowania i SHA-256 hasła, a licznik powtarzany 512 razy w celu uzyskania klucza.

Edycja : Nie szyfruje nazw plików, więc i tak możesz chcieć tarwszystkiego od początku.

Edycja 2 : Dodano -mhe=on.


5
Jeśli używasz 7za, możesz szyfrować nazwy plików z -mhe=onopcją.
SilverlightFox,

3

Możesz więc używać także nazw plików szyfrujących 7zip:

7z a -p -mhe=on stuff.7z MyStuff
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.