Làm thế nào tôi có thể mã hóa một tập tin?


10

Tôi muốn tải xuống một số tệp từ máy chủ của mình vào máy tính xách tay của mình và điều tôi muốn là giao tiếp này phải tàng hình và an toàn nhất có thể. Vì vậy, cho đến nay tôi đã sử dụng VPN, theo cách đó tôi chuyển hướng toàn bộ lưu lượng truy cập internet của máy tính xách tay của mình thông qua máy chủ của tôi. Ngoài ra, tôi đã cố gắng gửi một tệp bằng cách sử dụng ftp và quan sát Wireshark cùng một lúc. Giao tiếp dường như được mã hóa, tuy nhiên tôi cũng muốn mã hóa tập tin đó (như một bảo mật bước 2 hoặc một cái gì đó tương tự).

Máy chủ của tôi là một RasPi chạy Raspbian. Máy tính xách tay của tôi là Macbook Air.

Tôi muốn trước tiên mã hóa một tập tin trong Ras Pi của tôi và thứ hai tải nó xuống. Làm thế nào tôi có thể làm điều đó?


1
gpgcó thể mã hóa các tệp, không đối xứng (sử dụng khóa chung để mã hóa và khóa riêng để giải mã) hoặc đối xứng (sử dụng cùng khóa / mật khẩu để mã hóa và giải mã: dewinter.com/gnupg_howto/english/GPGMiniHowto.html
Martin von Wittich

Tại sao không sử dụng giao thức như HTTPS, SFTP hoặc FTPS? Nếu giao tiếp được mã hóa, việc thêm một lớp mã hóa thứ hai sẽ không giúp bạn đạt được điều gì.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


22

Bạn có thể sử dụng opensslđể mã hóa và giải mã bằng các mật mã đối xứng dựa trên khóa. Ví dụ:

openssl enc -in foo.bar \
    -aes-256-cbc \
    -pass stdin > foo.bar.enc

Điều này mã hóa foo.barthành foo.bar.enc(bạn có thể sử dụng-out tắc để chỉ định tệp đầu ra, thay vì chuyển hướng thiết bị xuất chuẩn như trên) bằng cách sử dụng mật mã AES 256 bit trong chế độ CBC . Có nhiều loại mật mã khác có sẵn (xem man enc). Sau đó, lệnh sẽ chờ bạn nhập mật khẩu và sử dụng mật khẩu đó để tạo khóa thích hợp. Bạn có thể thấy khóa có -phoặc sử dụng mật khẩu của riêng bạn thay cho mật khẩu -K(thực tế nó hơi phức tạp hơn một chút vì cần một vectơ khởi tạo hoặc nguồn, xem man enclại). Nếu bạn sử dụng mật khẩu, bạn có thể sử dụng cùng một mật khẩu để giải mã, bạn không cần phải xem hoặc giữ khóa được tạo.

Để giải mã điều này:

openssl enc -in foo.bar.enc \
    -d -aes-256-cbc \
    -pass stdin > foo.bar

Hãy chú ý -d. Xem thêm man openssl.


Ngoài ra, bạn có thể xuất kết quả ra một tệp bằng cách sử dụng tùy chọn -out FILENAMEthay vì đường ống trong đầu ra.
crazyGuy

4

Đối với các trường hợp một lần, bạn có thể mã hóa bằng zip và mật khẩu. Mặc dù không mạnh như các kỹ thuật dựa trên khóa (vì khó có mật khẩu tốt) nhưng nó có thể là tình huống đặc biệt tốt.

Dòng lệnh trông như thế này:

zip -r -0 -e encrypted_file.zip /path/to/files

-r to recurse directories.
-e to encrypt
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.