本文主要是介绍keychain,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
通常情况下,我们用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码、证书等等,就需要使用更为安全的keychain了。keychain里保存的信息不会因App被删除而丢失,在用户重新安装App后依然有效,数据还在。
使用苹果官方发布的KeychainItemWrapper或者SFHFKeychainUtils很方便,后来看到 iphone使用keychain来存取用户名和密码 一文,觉得对了解keychain有很大的帮助,于是ARC控也尝试了一把。
需要导入Security.framework
+ (NSMutableDictionary *)getKeychainQuery:(NSString *)service {return [NSMutableDictionary dictionaryWithObjectsAndKeys:(id)kSecClassGenericPassword,(id)kSecClass,service, (id)kSecAttrService,service, (id)kSecAttrAccount,(id)kSecAttrAccessibleAfterFirstUnlock,(id)kSecAttrAccessible, nil]; }+ (void)save:(NSString *)service data:(id)data {NSMutableDictionary *keychainQuery = [self getKeychainQuery:service];[keychainQuery setObject:[NSKeyedArchiver archivedDataWithRootObject:data] forKey:(id)kSecValueData];SecItemAdd((CFDictionaryRef)keychainQuery, NULL); }
这篇关于keychain的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!