[英]Secure App Data on iPhone
EDITED
好吧,拋開投票否定並不能真正幫助解決問題。 如果您沒有任何有用的說法,並且您對此問題不感興趣,只需更改頁面即可。 如果你有想法,或者你只是對了解不同的方法感興趣,那么即使它不完美或者只是一個實驗的想法,你的評論也是受歡迎的。
問題:
我需要將應用程序數據存儲在iPhone應用程序中。
我們最初使用經典的NSDocumentDirectory路徑存儲數據......但這種方法有多“安全”?
不考慮越獄設備(我現在對這個問題不感興趣),似乎任何用戶(在任何正版設備上)都可以使用簡單的iPhone瀏覽軟件導航到這個文件夾並弄亂內容,有效地破解它。
如果是這種情況,那么為了存儲安全通用數據(在這種情況下不一定是密碼),使用什么是最好的“地點”或“方法”。
即使在這些情況下,KeyChain是否也是正確的方式,還是有更好的/替代方式?
注意和核心問題:
我知道用密鑰等加密和保護數據。我不是在談論“混淆或保護他們的內容”
這里的問題是不同的。 所以讓我們這樣說吧:
“你怎么避免用戶可以訪問存儲文件(數據,加密,sql文件,你喜歡的任何東西)的文件夾,並以任何方式搞砸它們(這可能是刪除它們,復制它們,訪問它們使用十六進制編輯器和修改值,無論如何)。
這不是他們用它做的事情 ,而是一個更嚴格的限制,以確保用戶根本無法達到它們 “
謝謝
您可以使用加密算法來保護數據並保存在sqlite db或文檔字典中的文件中。
請看這個應用程序 ,這個應用程序解釋AES算法使用安全密鑰加密或解密數據。
在應用程序中使用存儲庫AES256AndBase64中的Helper類,在所需文件中使用#import "NSString+AESCrypt.h"
。
使用AES256EcryptWithKey:
和AES256DecryptWithKey:
方法加密/解密數據:
NSString* dummyString=@"Steve Job";
NSLog(@"Normal String- %@",dummyString);
NSString* encrypt_decrypt_Key=@"apple";
NSString *encryptString = [dummyString
AES256EncryptWithKey:encrypt_decrypt_Key];
NSLog(@"Encrypt String- %@",encryptString);
NSString *decryptString = [encryptString
AES256DecryptWithKey:encrypt_decrypt_Key];
NSLog(@"Decrypt String- %@",decryptString);
或者,如果您使用的是iOS 5及以上版本,請查看此博客 。
我不確定,但在刪除你的iPhone中的應用程序后,鍵鏈值不會被刪除。
加密是一種方法。 或者您可以嘗試使用一些散列算法(如SHA或MD5)來散列數據。 散列后,將數據和散列數據保存到NSDocumentDirectory。 當您需要數據時,通過查看散列數據來檢查其是否發生了變化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.