2012-01-01 255 views
0

我正在製作一個密碼應用程序,用於將信用卡,銀行信息等用戶登錄/密碼等存儲到plist文件中。我已經使用Google搜索,並且知道如何使用AES加密密鑰來加密和解密字符串。我得到了這個簡單的登錄名和密碼。我加密並保存到NSData的登錄名和密碼,然後解密和閱讀它如何加密,解密和刪除plist文件

- (NSData *)AES256EncryptWithKey:(NSString *)key; 
- (NSData *)AES256DecryptWithKey:(NSString *)key; 


- (NSData*) encryptString:(NSString*)plaintext withKey:(NSString*)key; 
- (NSString*) decryptData:(NSData*)ciphertext withKey:(NSString*)key; 

當用戶通過按下home鍵退出我的應用我想要做的是,我要加密的文件password.plist將其保存爲加密數據文件,然後從iPhone中刪除可讀的password.plist xml文件。 (password.plist文件將具有多行,例如信用卡1信息,信用卡2信息等的值)

當用戶重新登錄時我想解密並重新創建password.plist文件。任何人都知道如何做到這一點?

回答

3
  • 您可以使用鑰匙串服務爲您加密密碼。
  • 你可以使用NSFileProtectionComplete爲你的plist文件加密。

在嘗試創建自己的協議之前(例如,在您的系統中確保加密數據的完整性)之前,總是最好依賴其他人正確實施加密協議。蘋果公司在這方面已經做得很好,所以只需使用他們的東西。

+0

格雷厄姆,你能指點我蘋果認可的加密文件的方式嗎?我認爲AES256EncryptWithKey是蘋果認可的加密和加密和解密調用蘋果功能。例如 - (NSData *)encryptString:(NSString *)明文withKey:(NSString *)key { \t return [[plaintext dataUsingEncoding:NSUTF8StringEncoding] AES256EncryptWithKey:key]; } ... – 2012-01-01 19:28:00

+1

我已經給出了您可以使用的API的參考,您可以在developer.apple.com的文檔中查找它們以查找更多詳細信息。 'AESEncryptWithKey:'不是SDK的一部分,它是添加到'NSData'的某人(寫得不好)的類別。 – 2012-01-01 20:03:36