iOS 本地保存用户名密码等敏感信息,使用plist文件存储或者NSUserdefaults并不安全,需要进行加密。苹果keychain不仅仅申请开发证书使用,也是苹果给出的保存密码的最佳解决方案。
我们使用SFHFKeychainUtils第三方库来实现保存、读取和删除用户名密码操作。
SFHFKeychainUtils下载地址:https://github.com/ldandersen/scifihifi-iphone/tree/master/security。
新建工程,把下载的SFHFKeychainUtils.h和SFHFKeychainUtils.m文件添加到工程中,由于下载的SFHFKeychainUtils不支持ARC,所以要在TARGETS->Build Phases->Complie Resources 中的SFHFKeychainUtils.m添加 -fno-objc-arc的Compiler Flags。最后添加Security.framework框架。
//保存用户名密码
NSString*serviceName =@"com.XXXX.XXXX";
[SFHFKeychainUtils storeUsername:self.mobileTextField.text andPassword:self.passwordTextField.text forServiceName:serviceName updateExisting:YES error:nil];
//读取用户名密码
NSString *password = [SFHFKeychainUtils getPasswordForUsername:LOGIN_USER_MOBILE andServiceName:serviceName error:nil];
//删除用户名密码
[SFHFKeychainUtils deleteItemForUsername:LOGIN_USER_MOBILE andServiceName:serviceName error:nil];
这样我们的APP就更加安全了!
网友评论