2010-10-21 41 views
6

Tôi phải tạo một tệp zip tương thích WinZip từ một ứng dụng PHP trên một hộp linux và nó phải sử dụng mã hóa AES 256. Tôi đã tìm thấy một vài giải pháp cho PHP trên Windows, nhưng chúng không giúp tôi! Một gói PHP sẽ là tuyệt vời, nhưng nếu tôi cần, tôi luôn có thể chạy mã PHP của tôi() hoặc một cái gì đó để chạy tiện ích dòng lệnh linux.Làm cách nào để tạo một tệp zip mã hóa AES-256 tương thích WinZip từ PHP trên Linux?

Mọi đề xuất?

+0

Có vẻ như bạn sẽ cần phải gọi một chương trình zip bên ngoài để áp dụng mã hóa. Lớp zip tích hợp của PHP sẽ hoạt động tốt để tạo/giải nén các tệp zip chung trên Linux hoặc Windows, nhưng dường như không đề cập đến bất kỳ hỗ trợ mã hóa nào. –

+1

Dường như mã hóa AES là một tính năng WinZIP cụ thể, (xem http://www.winzip.com/aes_info.htm) chứ không phải là một tiêu chuẩn được thừa nhận rộng rãi trong thế giới của các tệp ZIP, làm cho nó có khả năng khó khăn để tạo lưu trữ như vậy sử dụng PHP mà không thực hiện cuộc gọi đến WinZIP, đặc biệt là trên các máy không phải Windows. Và điều đó làm tôi nghĩ: tại sao chính xác bạn muốn làm điều này? Có lẽ có rất nhiều lựa chọn thay thế tốt. Kịch bản của bạn sẽ chạy trên hệ điều hành nào và các tệp zip sẽ được mở trên hệ điều hành nào? Bạn muốn bảo vệ loại công cụ nào từ ai và tại sao? –

+0

Câu trả lời ngắn Pelle ten Cate ... khách hàng của tôi đã chỉ định các yêu cầu này. Tôi hy vọng sẽ khiến họ đồng ý với một sự thay đổi nhỏ, dễ dàng hơn cho tôi thực hiện. – Jason

Trả lời

0
  1. Nếu bản sao ứng dụng Zip chưa được cài đặt trên máy chủ của bạn, chỉ cần tìm kiếm một trong hàng trăm ứng dụng zip khác nhau có khả năng hỗ trợ cả tính tương thích và mã hóa.
  2. Sử dụng `exec` hoặc chức năng PHP tương tự để gọi bất kỳ ứng dụng zip bên ngoài nào có khả năng nén và áp dụng mã hóa AES-256 cho tệp đích của bạn. Bạn sẽ cần biết bất kỳ công tắc dòng lệnh nào mà ứng dụng zip của bạn yêu cầu để thực hiện điều này. Các tên tập tin đích trong tham số chuỗi `exec` của bạn có thể được chuyển đổi bằng cách sử dụng các biến.
  3. Phục vụ file zip mới của bạn

Tuy nhiên, nên mã hóa không phải là một mối quan tâm, xem lớp Zip PHP để làm file zip chung: http://php.net/manual/en/book.zip.php

1

Không php cụ thể (câu hỏi này được xếp hạng cao trong google cũng không có php): 7-Zip thực hiện tính năng này, trong tài liệu của tôi, tôi đã tìm thấy lệnh này:

7za a -tzip -pPASSWORD -mem=AES256 target.zip filelist 
+0

Câu hỏi này được xếp hạng vì thẻ [tag: php] đã cho – mate64

Các vấn đề liên quan