2014-01-06 38 views
0

我需要在iOS上的文檔目錄中保護文件,尤其是圖像。我不希望用戶可以通過Xcode或iExplorer應用程序下載文檔目錄中的圖像。 我在iOS 6上研究,Apple通過設備密碼支持安全。但這不像我預料的那樣。ios文檔目錄中的安全圖像文件

你有什麼想法嗎?

回答

-1

我認爲加密文件的最簡單方法是異或OR。

的基本原理是A XOR B XOR B = A。

更多來自Link

+0

XOR與什麼?有一個CTR模式,但它需要一個隨機數,每個隨機數只能使用一次,在實踐中往往非常不安全。 – zaph

+0

@Zaph選擇一個uint64_t鍵,然後將文件流中的8個字節作爲Xor的一部分,並將結果保存在另一個文件中。它不是非常安全的,但很容易加密和解密。 – KudoCC

+0

我認爲重點是簡單和安全之間的權衡:**不要**。安全加密的第一條規則是從不設計你自己的加密。至於簡單,最簡單的方法是使用'NSData'的NSDataWritingOptions。 – zaph

1

最簡單的方法是使用NSDatawriteToFile:options:error:方法
與將寫入文件的選項NSDataWritingOptions一個加密:
NSDataWritingFileProtectionComplete
NSDataWritingFileProtectionCompleteUnlessOpen
NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication

否則,您可以使用CommonCrypto函數來加密/解密自己。除了確保和處理鑰匙和確保鑰匙是最重要的部分和最難做到的事情之外,這並不難。

+0

謝謝Zaph。這是很好的想法。我會嘗試這種方式 –

+0

但我怎麼可以使用這個。 – Jitendra

+0

如果您擔心用戶通過使用iExplorer應用程序下載圖像,考慮到他們已將手機與電腦配對並可以解鎖設備,他們將繞過iOS數據保護並能夠查看文檔內容您的特定應用程序的文件夾(即您的圖像)。正如zaph所說,CommonCrypto是一個很好的解決方案。在哪裏隱藏加密密鑰?您可以在應用程序中對其進行混淆處理(不好,但可以防止對文件進行隨意觀察),或者在應用程序啓動時從服務器將密鑰發送到應用程序(更好)。 – NSDestr0yer