2010-05-30 58 views
6

Có cách nào để mã hóa tệp (.zip, .doc, .exe, ... bất kỳ loại tệp nào) bằng Python không?Mã hóa tệp bằng Python

Tôi đã xem xét một loạt các thư viện mã hóa cho Python bao gồm pycrypto và ezpycrypto nhưng theo như tôi thấy chúng chỉ cung cấp mã hóa chuỗi.

+0

Liên quan: [Tạo tệp ZIP được mã hóa bằng Python] (http://stackoverflow.com/questions/17250/create-an-encrypted-zip-file-in-python) – miku

+7

Trong Python 2, chuỗi thực sự là byte -strings, vì vậy bạn chỉ có thể đọc trong tập tin dưới dạng nhị phân, mã hóa nó, sau đó viết dưới dạng nhị phân. –

+1

Ugh .. sao tôi không thể nghĩ vậy. Cảm ơn :) – Pinkie

Trả lời

1

Bạn có thể đọc tệp hoàn chỉnh thành chuỗi, mã hóa nó, viết chuỗi được mã hóa vào tệp mới. Nếu tệp quá lớn, bạn có thể đọc theo khối.

Mỗi lần bạn .read từ một tệp, bạn nhận được một chuỗi (bằng Python < 3.0).

2

Trong phiên bản Python trước phiên bản 3.0, read method của file object sẽ trả về chuỗi, cung cấp chuỗi này cho thư viện mã hóa bạn chọn, chuỗi kết quả có thể được ghi vào tệp.

Hãy nhớ rằng trên hệ điều hành Windows, chế độ mặc định được sử dụng khi đọc tệp có thể không cung cấp chính xác nội dung của tệp. Tôi đề nghị bạn là familiar with the nuances of file modes and how they behave on Windows-based OSes.