Hướng dẫn php encrypt files on server - php mã hóa tập tin trên máy chủ
Nếu bạn xử lý dữ liệu nhạy cảm, việc mã hóa các tệp trước khi lưu trữ chúng trên máy chủ hoặc lưu trữ đám mây. Hãy cùng xem cách mã hóa và giải mã các tệp trong PHP với chức năng Show
🚫 Don Tiết chuyển toàn bộ nội dung cho openssl_encryptHàm Bạn có thể nghĩ rằng tất cả những gì bạn phải làm là chuyển toàn bộ nội dung tệp vào Nếu bạn muốn mã hóa một tệp 30m, yêu cầu PHP của bạn sẽ sử dụng ít nhất 60m bộ nhớ. Với các tệp lớn hơn, bạn có nguy cơ vượt quá giới hạn bộ nhớ PHP. Hãy để thử mã sau với tệp 30m. Nó tải toàn bộ nội dung tệp với ➜ php encrypt_file.phpFile encrypted! 64,98m được phân bổ cho PHP. Điều đó có nghĩa là mã này đã giành được công việc với các tệp lớn vì chúng tôi sẽ vượt quá giới hạn bộ nhớ PHP.this code won’t work with large files since we’ll exceed the PHP memory limit. ✅ Mã hóa các khối nhỏ hơn của một tệp lớnĐể tránh tải một tệp lớn vào bộ nhớ, thực tiễn tốt nhất là mã hóa các khối nhỏ hơn của tệp, từng phần khác và viết chúng vào một tệp khác. 1. Tạo một vectơ khởi tạo ngẫu nhiên (iv)Như bạn có thể biết, khi chúng ta sử dụng ➜ php encrypt_file.phpFile encrypted!0. 2. Lưu trữ IV này ở đầu tệp được mã hóaChúng tôi có thể giải mã bất cứ thứ gì mà không cần IV, vì vậy chúng tôi phải lưu trữ IV này ở đâu đó để chúng tôi có thể giải mã nội dung sau này. Nó không phải là một thông tin bí mật như khóa mã hóa, vì vậy chúng tôi có thể lưu trữ nó ở đầu tệp được mã hóa. 3. Lấy một đoạn đầu tiên, mã hóa nó với IV và lưu trữ nóBây giờ chúng ta có một IV ngẫu nhiên, chúng ta có thể lấy một đoạn đầu tiên của tệp PlainText và mã hóa nó, sau đó lưu trữ nó ở cuối tệp được mã hóa. 4. Sử dụng các ký tự đầu tiên của đoạn được mã hóa cho IV tiếp theoÝ tưởng là thay đổi IV cho mỗi mã hóa chunk. IV tiếp theo sẽ luôn là nhân vật đầu tiên của đoạn được mã hóa cuối cùng. 5. Lấy phần tiếp theo và lặp lại bước 3Cách mã hóa một tệp trong PHP➜ php encrypt_file.phpFile encrypted! Đối với cùng một tệp, lần này lấy bộ nhớ 0,38m để mã hóa nó. Điều này tốt hơn nhiều so với 64,98m của cách tiếp cận đầu tiên của chúng tôi! Để giải mã tệp, chúng ta chỉ cần thực hiện thao tác ngược. Cách giải mã một tệp trong PHPMã đầy đủCách mã hóa và giải mã một tệp trong PHPDescription:Tôi muốn tạo một trung tâm tải lên cho các tệp nhỏ (tài liệu Word/Excel/Zip, v.v.) với PHP.
Điều tôi đã nghĩ đến:
Có cách nào tốt hơn để làm điều này với một máy chủ duy nhất và không có phần cứng bổ sung? Có ý tưởng nào của tôi cung cấp bảo mật tối thiểu (tốt nhất tôi có thể) mà tôi đang tìm kiếm không?
Hỏi ngày 12 tháng 12 năm 2019 lúc 14:18Dec 12, 2019 at 14:18
7 |