2012-07-26 13 views
6

Tôi đang tìm kiếm một thành phần hoặc kỹ thuật khác để nén và mã hóa nhiều tệp lớn (tệp vượt quá kích thước 4gb và do đó sẽ không vừa với bộ nhớ có sẵn cho quy trình win32) thành một tệp. Tôi muốn mã hóa rất mạnh (256 bit AES hoặc tốt hơn) nhưng việc nén không quan trọng đối với tôi.Làm cách nào để nén và mã hóa một tệp lớn mà không sử dụng các tệp DLL hoặc thời gian chạy bên ngoài?

Hiện tại, tôi đang sử dụng thành phần TJvZlibMultiple tạo định dạng tệp không phải Zip của riêng mình, nhưng tôi phải tạo lưu trữ, sau đó mã hóa nó theo một bước riêng biệt (tôi đang sử dụng DcpCrypt ngay bây giờ). Tôi muốn làm tương tự trong một lần truyền, sử dụng các luồng, mà không sử dụng bộ nhớ bằng kích thước của tệp (ergo, việc nén và mã hóa sẽ xảy ra với các luồng và không phải trong bộ nhớ).

Tôi đã thấy và không muốn sử dụng, mọi thứ yêu cầu một tệp DLL bên ngoài như dll 7zip. Các công cụ thương mại không quan trọng, hoặc bất kỳ mã nguồn hoặc các nguồn Delphi mẫu nào, nhưng tôi đang tìm kiếm một triển khai toàn diện trong Delphi không phải là một thứ mà nhập khẩu và gọi các hàm trong một dll.

+4

Tôi không đồng ý với 2 phiếu bầu cho đóng cửa! (đặc biệt mà không có bất kỳ lời giải thích nào). –

+0

@ François, hai phiếu bầu cả hai đều là câu hỏi không mang tính xây dựng, mà trong ngữ cảnh này có thể có nghĩa là họ phản đối việc mời gọi các thành phần bởi vì nó nằm trong một câu hỏi thăm dò ý kiến. Tôi đã lấy nó xa hơn một chút so với biên giới đó bằng cách làm cho nó đặt câu hỏi tổng quát hơn về cách hoàn thành mục tiêu đã nêu thay vì yêu cầu cụ thể cho một thành phần. Hầu hết các câu trả lời có lẽ sẽ gợi ý các thành phần hoặc thư viện. –

+1

Cảm ơn @RobKennedy. Nó trông thực sự tốt hơn như thế. –

Trả lời

2

Hãy xem DIZipWriter.

Hỗ trợ 256 bit AES, phát trực tuyến và nén.

Cập nhật: Phiên bản 5 tuyên bố có hỗ trợ cho các mục có kích thước lớn (64bit), DIZipWriter History.

+0

Tôi đã xóa cờ câu trả lời khỏi câu hỏi này vì mặc dù thành phần này có hỗ trợ mã hóa tuyệt đẹp nhưng sử dụng Cardinal (32 bit) thay vì int64 cho kích thước tệp và thông số vị trí, có nghĩa là nhà phát triển không nghĩ đến việc sử dụng thành phần của mình với tệp> 4 gb kích thước. Vì đó là phần dễ dàng, tôi thậm chí không bắt đầu nghi ngờ rằng anh ta sẽ làm hỏng một điều dễ dàng như vậy. Nhưng nhìn vào phiên bản có thể tải xuống (cho phép bạn xem chữ ký của tất cả các API), tôi có thể thấy nó chưa sẵn sàng cho các tệp lớn. –

-1

Kiểm tra FlexCompress:

FlexCompress là một thành phần nén delphi thiết kế để tạo ra tài liệu lưu trữ với mã hóa mạnh mẽ và tỷ lệ nén tốt hơn so với WinZip và RAR. Native VCL, không có DLL, không có OCX, cung cấp nén cho các tệp, bộ đệm, luồng và chuỗi, hỗ trợ lưu trữ trong bộ nhớ, nén các tệp lớn> 4 Gb với mức tiêu thụ bộ nhớ thấp và nhiều tính năng hữu ích khác.

http://www.componentace.com/flexcompress_features.htm

bởi liên kết này: http://delphi.about.com/od/toppicks/tp/delphi_zip.htm

+0

Đã đề xuất ở trên. Làm cho câu trả lời của bạn trùng lặp. Xin hãy bình chọn, –