【问题标题】:How to Encrypt, Decrypt and Delete a plist file如何加密、解密和删除 plist 文件
【发布时间】:2012-01-01 19:09:01
【问题描述】:

我正在制作一个密码应用程序,它将信用卡、银行信息等的用户登录名/密码等存储到 plist 文件中。我用谷歌搜索过,我知道如何使用带密钥的 AES 加密来加密和解密字符串。我让它适用于简单的登录名和密码。我将登录名和密码加密并保存到 NSdata,然后解密并读取它

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


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

我想要做的是当用户通过按下主页按钮退出我的应用程序时,我想加密 password.plist 文件,将其保存为加密的数据文件,然后从他的 iPhone 中删除可读的 password.plist xml 文件。 (password.plist 文件将包含多行,值,例如信用卡 1 信息、信用卡 2 信息等)

当用户重新登录时,我想解密并重新创建 password.plist 文件。有谁知道这是怎么做到的?

【问题讨论】:

    标签: iphone xcode4 ios4


    【解决方案1】:
    • 您可以使用钥匙串服务为您加密密码。
    • 您可以使用NSFileProtectionComplete 为您加密您的 plist 文件。

    在您尝试创建自己的协议之前,最好依靠其他人已经正确实施了加密协议(例如,在您的系统中,加密数据的完整性可以在哪里得到保证?)。苹果在这方面已经做得很好了,所以就用他们的东西吧。

    【讨论】:

    • 格雷厄姆,你能告诉我苹果认可的文件加密方式吗?我认为 AES256EncryptWithKey 是苹果认可的加密和加密和解密调用苹果函数。例如 - (NSData*) encryptString:(NSString*)plaintext withKey:(NSString*)key { return [[plaintext dataUsingEncoding:NSUTF8StringEncoding] AES256EncryptWithKey:key]; } ...
    • 我已经给出了您可以使用的 API 的参考,您可以在 developer.apple.com 上的文档中查找更多详细信息。 AESEncryptWithKey: 不是 SDK 的一部分,它是添加到 NSData 的某人(写得不好)的类别。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-04
    • 2021-10-20
    • 2011-05-15
    相关资源
    最近更新 更多