Mã hóa và nén


28

Có cách nào tốt hơn để nén và sau đó mã hóa các tập tin khác hơn tarlà theo sau opensslhay gpgkhông?


3
Mà phụ thuộc. Yêu cầu của bạn là gì? Làm thế nào để bạn định lượng "tốt nhất"? Những công cụ nào bạn có sẵn? Bạn đã xem xét bất kỳ tùy chọn khác đã có thể hữu ích để đề cập?
Greg Hewgill

Không được xem xét bất kỳ người khác. Nó chỉ cần được mã hóa cơ bản, trong đó ai đó không thể đọc nội dung của tệp và tốt nhất là duy trì tỷ lệ nén tốt.
75027

1
Nói chung câu trả lời sẽ là không. Một trong những triết lý cốt lõi của unix là "làm một việc và làm tốt". tar -zlà một ngoại lệ nhỏ vì nó là một thực tế rất phổ biến.
Patrick

1
Các tarphiên bản mới hơn hỗ trợ nén xz (cờ -J) có tỷ lệ nén thường tốt hơn so với nén gzip ( -z) hoặc bzip2 ( -j) truyền thống hơn .
jofel

Tôi đã nhận thấy rằng đó xzlà tuyệt vời. Tôi nhớ là đã tải xuống kernel và nó đã được nén vào khoảng 1/7 kích thước ban đầu của nó. Tôi đoán tôi sẽ tar cvJf out.tar.xz file1 [file2...]và sau đó sử dụng gpg hoặc openssl để mã hóa nó. Tôi cũng nhận thấy rằng xz rất nhanh. Làm thế nào để nó đạt được nén tốt hơn bz2 mà vẫn nhanh?
75027

Câu trả lời:


24

tarlà công cụ thông thường để đóng gói các tập tin. Đồng bằng tarkhông nén. Có các công cụ riêng biệt như gzip , bzip2xz (theo thứ tự tăng tỷ lệ nén trên các tệp thông thường) nén một tệp. Nhiều tartriển khai, bao gồm GNU tar (triển khai bình thường trên Linux), có thể tự động nén với một tùy chọn ( -zđối với gzip, -jđối với bzip2, -Jđối với xz):

tar -cJf myarchive.tar.xz file1 file2 file3

Để mã hóa một tập tin, sử dụng gpg . Tạo một khóa và liên kết nó với địa chỉ email của bạn (số nhận dạng khóa GPG / PGP thường chứa một địa chỉ email, mặc dù không cần thiết). Mã hóa tệp của bạn, chỉ định email của bạn là người nhận. Để giải mã một tập tin, bạn sẽ cần nhập cụm mật khẩu để mở khóa khóa riêng của mình.

GPG cũng cho phép bạn mã hóa một tập tin bằng mật khẩu. Điều này là ít an toàn và kém linh hoạt. Nó kém linh hoạt hơn vì bạn cần chỉ định mật khẩu khi mã hóa (ví dụ: bạn không thể tạo bản sao lưu không giám sát). Nó kém an toàn hơn vì bảo mật duy nhất là mật khẩu, trong khi mã hóa dựa trên khóa sẽ phân chia bảo mật giữa mật khẩu và khóa.

Đừng sử dụng opensslcông cụ dòng lệnh. Đây là một chương trình giới thiệu cho thư viện OpenSSL, không được thiết kế để sử dụng sản xuất. Mặc dù bạn có thể làm một số thứ với nó (đặc biệt, nó có tất cả các nguyên thủy cần thiết cho cơ quan chứng nhận cơ bản), thật khó để sử dụng chính xác và nó không có tất cả những gì bạn cần làm đúng. Trong đó GPG cung cấp cho bạn một chiếc xe đạp, OpenSSL cung cấp cho bạn một số thanh kim loại có kích cỡ khác nhau và một vài buồng cao su (không bao gồm ốc vít và bơm). Sử dụng GPG.


Tôi hiểu tar là một gói và các phương pháp nén. phím gpg, tuy nhiên, là mới đối với tôi. Tôi không hiểu chính xác làm thế nào để sử dụng nó, mặc dù tôi có một chìa khóa. Tôi nghĩ. Tôi nghĩ rằng tôi cũng có phím ssh.
75027

Đây là những gì tôi đang tìm kiếm để nén và mã hóa bằng một lệnh (sử dụng targpgtrong một đường ống).
CGFoX

12

Bạn có thể sử dụng 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

Nó sẽ nhắc bạn nhập mật khẩu. Rõ ràng, nó sử dụng AES-256 để mã hóa và SHA-256 của mật khẩu và bộ đếm được lặp lại 512K lần cho việc tạo ra khóa.

Chỉnh sửa : Điều này không mã hóa tên tệp, vì vậy dù sao bạn cũng có thể muốn tarmọi thứ.

Chỉnh sửa 2 : Đã thêm -mhe=on.


5
Nếu bạn sử dụng, 7zabạn có thể mã hóa tên tệp với -mhe=ontùy chọn.
SilverlightFox

3

Vì vậy, bạn cũng có thể sử dụng tên tệp mã hóa 7zip:

7z a -p -mhe=on stuff.7z MyStuff
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.