2013-09-26 55 views
8

Tôi đang mã hóa các tệp đã tải xuống và lưu chúng cục bộ trong thư mục tài liệu của ứng dụng.Nơi lưu trữ các tệp được giải mã?

Để đọc chúng, bạn phải giải mã những tệp đó và lưu trữ một số nơi tạm thời.

mối quan tâm của tôi là:

1.If Tôi lưu trữ chúng trong thư mục doc cho thời gian họ đang được sử dụng, cho rằng cửa sổ thời gian người ta có thể có được các tập tin sử dụng các công cụ như iexplorer.

2. Ý tưởng của tôi là lưu trữ chúng trong bộ nhớ trong thời gian chúng được sử dụng và xả sạch hầm sau khi sử dụng. Tùy chọn này phù hợp cho các tệp nhỏ nhưng đối với các tệp lớn có dung lượng 50 MB hoặc video là 100 MB, tôi e rằng ứng dụng sẽ nhận được cảnh báo bộ nhớ trong kết quả sẽ chấm dứt đột ngột.

Tôi muốn biết cách tiếp cận tốt nhất để thực hiện việc này.

+2

bất kỳ cách nào để chia nhỏ tệp thành các phần để bạn có thể đọc một đoạn mã được mã hóa vào bộ nhớ và giải mã nó? –

+0

đây có thể là một lựa chọn nhưng đây không phải là một công việc dễ dàng và đối với một số tệp lưu trữ siêu dữ liệu ở chân trang hoặc khi nhấp vào liên kết trên trang pdf, điều này sẽ không hữu ích. Bạn cần phải nghiên cứu cấu trúc tệp của từng loại tệp và cơ chế đọc chúng. –

+0

Không có giải pháp hoàn hảo cho vấn đề này nhưng giải mã trên bay là an toàn nhất. Có nhiều cách để giải mã video ngay lập tức khi nó được hiển thị, ví dụ: (mặc dù tôi không hiểu chúng đủ rõ để giải thích nó). –

Trả lời

-1

Giải mã chúng, làm xáo trộn chúng bằng thuật toán đồ chơi (ví dụ: XOR với khối không đổi) và lưu trữ chúng trong tài liệu. Khi cần thiết, tải và giải mã.

Vì vấn đề không có giải pháp về mặt lý thuyết (một kẻ tấn công đủ quyết tâm có thể đọc hết bộ nhớ của bạn), nó là một giải pháp tốt như mọi thứ.

+0

Dữ liệu XORing với "khối liên tục" không an toàn cho hầu hết các định dạng tệp. – duskwuff

+0

Không có gì an toàn là ứng dụng có khả năng giải mã các tệp. Nó giống như obfuscation. –

0

Chia tệp của bạn thành các kích thước nhỏ hơn trước khi lưu chúng, sau đó giải mã khi tải.

Chỉnh sửa sau: Tôi nhận thấy điều này được đề cập trong các nhận xét. Tôi đồng ý chia nhỏ tập tin không phải là điều đơn giản nhất trên thế giới, nhưng có lẽ bạn sẽ chỉ cần điều này cho video. Khoảng 100MB là rất nhiều văn bản hoặc âm thanh. Nếu trọng số PDF của bạn nhiều, có thể là văn bản được quét và bạn có thể thay đổi nó thành chuỗi nếu hình ảnh.

Và có, chia tách tốt hơn được thực hiện phía máy chủ, không muốn người dùng lãng phí pin trong xử lý video.

+0

tôi không chắc chắn liệu điều này có thể được thực hiện bằng cách sử dụng sdk iOS bởi vì khi tập tin phương tiện truyền thông được trao cho AVPlayer hoặc MPMoviePlayerController, đầu tiên họ xử lý toàn bộ tập tin để biết về siêu dữ liệu của nó. Với khối byte, làm thế nào tôi sẽ biết rằng đoạn cụ thể là cần thiết và giải mã ở giữa. –

+1

Điều này sẽ không đáng kể, nhưng đây là điều mà máy chủ của bạn phù hợp hơn để thực hiện: Chia nhỏ tệp tin một cách dễ dàng và cung cấp cho bạn thông tin về các phần bù đoạn. –

+0

Cảm ơn lời đề nghị của bạn ilya n –

1

không có bảo mật hoàn hảo nào lưu trữ tệp cục bộ một cách an toàn. Nếu một người có toàn quyền truy cập vào thiết bị, anh ta luôn có thể tìm cách giải mã các tệp, miễn là ứng dụng của bạn có thể giải mã được.

Câu hỏi duy nhất là: Cần nỗ lực bao nhiêu để giải mã các tệp?

Nếu mối quan tâm duy nhất của bạn là một người có thể sử dụng iExplorer để sao chép và mở các tệp này, mã hóa đối xứng cục bộ đơn giản sẽ thực hiện thủ thuật.

Chỉ cần nhúng khóa đối xứng ngẫu nhiên vào ứng dụng của bạn và mã hóa khối dữ liệu theo khối trong khi bạn tải xuống.

Bạn có thể sử dụng khung "Biến đổi bảo mật" thoải mái để thực hiện mã hóa đối xứng. Có một số ví dụ hay trong số Apple Documentation.

Khi bạn tải các tệp, bạn có thể sử dụng cùng một khóa để giải mã chúng trong khi bạn tải chúng từ hệ thống tệp.

Chỉ cần làm rõ mọi thứ: Đây không phải là sự bảo vệ hoàn hảo của các tệp. Nhưng để giải mã các tệp, một tệp có quyền truy cập vào nhị phân ứng dụng của bạn.Phân tích nhị phân này trong trình gỡ lỗi và tìm phần giải mã để trích xuất khóa đối xứng của bạn. Đây là một nỗ lực rất cần thiết chỉ để giải mã các tập tin.