Đây là một vài cách để làm điều này. Một điều cần lưu ý là nếu bạn sẽ sử dụng các công cụ nén và mã hóa riêng biệt, bạn phải luôn nén trước khi mã hóa, vì dữ liệu được mã hóa về cơ bản là không thể nén được.
Những ví dụ này nén và mã hóa một tập tin gọi là clear_text
.
Sử dụng gpg
$ gpg -c clear_text #Compress & Encrypt
$ gpg -d clear_text.gpg #Decrypt & Decompress
gpg sẽ nén tệp đầu vào trước khi mã hóa theo mặc định, -c
có nghĩa là sử dụng mã hóa đối xứng bằng mật khẩu. Các tập tin đầu ra sẽ được clear_text.gpg
. Một lợi ích của việc sử dụng gpg
là sử dụng các định dạng OpenPGP tiêu chuẩn, do đó, bất kỳ phần mềm mã hóa nào hỗ trợ OpenPGP đều có thể giải mã được.
Sử dụng mcrypt
$ mcrypt -z clear_text #Compress & Encrypt
$ mdecrypt -z clear_text.gz.nc #Decrypt & Decompress
Các -z
tùy chọn nén. Theo mặc định, điều này xuất ra một tập tin gọi là clear_text.gz.nc
.
Sử dụng bcrypt
$ bcrypt -r clear_text #Compress & Encrypt
$ bcrypt -r clear_text.bfe #Decrypt & Decompress
bcrypt nén trước khi mã hóa theo mặc định, -r
tùy chọn là để tệp đầu vào không bị xóa trong quá trình. Các tập tin đầu ra được gọi clear_text.bfe
theo mặc định.
Sử dụng gzip
vàaespipe
$ cat clear_text | gzip | aespipe > clear_text.gz.aes #Compress & Encrypt
$ cat clear_text.gz.aes | aespipe -d | gunzip > clear_text #Decrypt & Decompress
aespipe là những gì nó nghe như, một chương trình lấy đầu vào trên stdin và xuất ra dữ liệu được mã hóa trên thiết bị xuất chuẩn. Nó không hỗ trợ nén, vì vậy bạn có thể dẫn đầu vào qua gzip trước. Vì đầu ra đi vào thiết bị xuất chuẩn, bạn sẽ phải chuyển hướng nó đến một tệp có tên do bạn chọn. Có lẽ không phải là cách hiệu quả nhất để làm những gì bạn yêu cầu nhưng aespipe là một công cụ đa năng nên tôi nghĩ nó đáng được đề cập.
openssl aes-256-cbc -d -in out.tar.gz.enc -out decrypted.tar.gz