0

这里只有一个简短的问题,我想知道为从服务器返回的用户放置注册码的最佳位置。我正在对其进行加密,如此处所示

//encrypting
NSString* strToEncrypt =NewPINField.text
NSString* theKey = @\"KeyKeyKeyKey\";
NSData* dataToEncrypt = [strToEncrypt dataUsingEncoding: NSUTF8StringEncoding];
NSData *encryptedData = [dataToEncrypt EncryptWithKey: theKey];
NSLog(@\"Encrypted data: %@\", encryptedData);


//decrypting
NSData* encryptedData = (NSData*)[profileData objectForKey:@\"PIN\"];
NSString* theKey = @\"KeyKeyKeyKey\"; //notice this is the same as above. It MUST be
NSData *decData = [encryptedData DecryptWithKey: theKey ];
currentPIN = [NSString stringWithUTF8String:[decData bytes]];

NSLog(@\"Decrypted pin: %@\", currentPIN);

唯一的其他规范是将其隐藏/放置在不知道会想看的地方。我需要保存状态,所以它需要是某种 plist,我只是想知道是否有一种方法可以隐藏它,而不是直接将它添加到我的 plist 文件中。

你会怎么做?

任何帮助将不胜感激。

4

1 回答 1

1

如果您需要安全地存储数据,我强烈建议您使用钥匙串。这里有一个关于创建基本钥匙串应用程序的教程:http ://www.raywenderlich.com/6475/basic-security-in-ios-5-tutorial-part-1

您可以安全地将数据存储在钥匙串中,而不必担心首先对其进行加密,因为这是由操作系统处理的。但如果你愿意,你可以。

实施安全性时,切勿试图隐藏别人不会看的东西:http ://en.wikipedia.org/wiki/Security_through_obscurity

于 2013-05-06T22:56:29.540 回答