iOS开发--利用keychain保存用户数据
来源:互联网 发布:linux下安装mysql5.6 编辑:程序博客网 时间:2024/05/22 01:52
#import <Foundation/Foundation.h>#import <Security/Security.h>@interface HsKeychain : NSObject+ (void)save:(NSString *)service data:(id)data;+ (id)load:(NSString *)service;+ (void)deleteData:(NSString *)service;@end
#import "HsKeychain.h"@implementation HsKeychain+ (NSMutableDictionary *)getKeychainQuery:(NSString *)service { return [NSMutableDictionary dictionaryWithObjectsAndKeys: (__bridge id)kSecClassGenericPassword,(__bridge id)kSecClass, service, (__bridge id)kSecAttrService, service, (__bridge id)kSecAttrAccount, (__bridge id)kSecAttrAccessibleAfterFirstUnlock,(__bridge id)kSecAttrAccessible, nil];}+ (void)save:(NSString *)service data:(id)data { //Get search dictionary NSMutableDictionary *keychainQuery = [self getKeychainQuery:service]; //Delete old item before add new item SecItemDelete((__bridge CFDictionaryRef)keychainQuery); //Add new object to search dictionary(Attention:the data format) [keychainQuery setObject:[NSKeyedArchiver archivedDataWithRootObject:data] forKey:(__bridge id)kSecValueData]; //Add item to keychain with the search dictionary SecItemAdd((__bridge CFDictionaryRef)keychainQuery, NULL);}+ (id)load:(NSString *)service { id ret = nil; NSMutableDictionary *keychainQuery = [self getKeychainQuery:service]; [keychainQuery setObject:(id)kCFBooleanTrue forKey:(__bridge id)kSecReturnData]; [keychainQuery setObject:(__bridge id)kSecMatchLimitOne forKey:(__bridge id)kSecMatchLimit]; CFDataRef keyData = NULL; if (SecItemCopyMatching((__bridge CFDictionaryRef)keychainQuery, (CFTypeRef *)&keyData) == noErr) { @try { ret = [NSKeyedUnarchiver unarchiveObjectWithData:(__bridge NSData *)keyData]; } @catch (NSException *e) { NSLog(@"Unarchive of %@ failed: %@", service, e); } @finally { } } if (keyData) CFRelease(keyData); return ret;}+ (void)deleteData:(NSString *)service { NSMutableDictionary *keychainQuery = [self getKeychainQuery:service]; SecItemDelete((__bridge CFDictionaryRef)keychainQuery);}@end
0 0
- iOS开发--利用keychain保存用户数据
- iOS 使用KeyChain保存数据
- iOS - Keychain保存用户帐号及密码
- [iOS]数据永久保存(KeyChain)
- iOS开发,使用keychain保存用户名密码
- iOS开发——用keychain来保存更隐秘的数据
- iOS----KeyChain保存uuid
- iOS开发 -- KeyChain使用与共享数据
- iOS开发小点之--使用Keychain保存用户名密码
- Keychain介绍、使用Snoop-it分析Keychain读写、使用Keychain Dumper导出Keychain中的数据 - iOS开发
- iOS用户数据安全:Keychain、Touch ID以及1Password
- iOS用户数据安全:Keychain、Touch ID以及1Password
- iOS用户数据安全:Keychain、Touch ID以及1Password
- 保护 iOS 用户数据安全: Keychain 和 Touch ID
- iOS keychain存储数据
- iOS开发 - Keychain共享
- 使用Keychain保存用户的信息
- 利用keychain保存iphone唯一识别码idfv
- ImageView图片充满
- 不连数据线通过wifi进行的adb调试
- samba实现ubuntu跟windows文件共享(转)
- 快速排序
- js匿名函数
- iOS开发--利用keychain保存用户数据
- Android java面试题收集
- 关于Matlab画图
- 第一周项目四:图书馆的书
- sscanf用法
- g729源码分析-开篇
- 蛇形填数
- 竖式问题
- acm新学到的知识2--printf特殊用法