2012-01-01 264 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