簡體   English   中英

在iPhone上保護應用數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM