谈谈iOS钥匙扣的使用

  


<强>

<强>

<李>

<李>

<李>

<李>

<李>

<李>


//建立词典,用来传递参数      NSMutableDictionary  * dictionary =, [[NSMutableDictionary 字典);   ,//设置条目类别,我们用该条目存储普通密码,所以设置成kSecClassGenericPassword   [dictionary  setObject: (id) kSecClassGenericPassword  forKey: (id) kSecClass];   ,//设置条目的id,比如“MyPasswordForFtp",条目id必须时NSDate,而不是NSString   NSString  * itemIDString =, @" MyPasswordForFtp";   * itemID=NSData  [itemIDString  dataUsingEncoding NSUTF8StringEncoding):;   [dictionary  setObject: itemIDforKey: (id) kSecAttrGeneric);   ,//设置条目所属的服务和账户,为了避免重名,我们使用常见的反转域名规则,比如com.mykeychain.ftppassword   NSString  * account =, @" com.mykeychain.ftppassword";   NSString  * service =, @" com.mykeychain.ftppassword";   [dictionary  setObject: account  forKey: (id) kSecAttrAccount];   [dictionary  setObject: service  forKey: (id) kSecAttrService];   ,//设置查询条件,只返回一个条目   [dictionary  setObject: (id) kSecMatchLimitOne  forKey: (id) kSecMatchLimit];   ,//设置查询条件,返回条目存储的数据,(kSecReturnData ==,真的)   [dictionary  setObject: (id) kCFBooleanTrue  forKey: (id) kSecReturnData];   ,//开始查询   NSData  * result =,零;   OSStatus  status =, SecItemCopyMatching ((CFDictionaryRef) dictionary ,, (CFTypeRef  *),结果);

//建立词典,用来传递参数   NSMutableDictionary  * dictionary =, [[NSMutableDictionary 字典);   ,//设置条目类别,我们用该条目存储普通密码,所以设置成kSecClassGenericPassword   [dictionary  setObject: (id) kSecClassGenericPassword  forKey: (id) kSecClass];   ,//设置条目的id,比如“MyPasswordForFtp",条目id必须时NSDate,而不是NSString   NSString  * itemIDString =, @" MyPasswordForFtp";   * itemID=NSData  [itemIDString  dataUsingEncoding NSUTF8StringEncoding):;   [dictionary  setObject: itemIDforKey: (id) kSecAttrGeneric);   ,//设置条目所属的服务和账户,为了避免重名,我们使用常见的反转域名规则,比如com.mykeychain.ftppassword   NSString  * account =, @" com.mykeychain.ftppassword";   NSString  * service =, @" com.mykeychain.ftppassword";   [dictionary  setObject: account  forKey: (id) kSecAttrAccount];   [dictionary  setObject: service  forKey: (id) kSecAttrService];   ,//设置条目数据,条目数据时NSDate   NSString  * password =, @" 123456“;   NSData  * itemData =, [password  dataUsingEncoding NSUTF8StringEncoding):;   [dictionary  setObject: itemData  forKey: (id) kSecValueData];   ,//添加条目到钥匙链   OSStatus  status =, SecItemAdd ((CFDictionaryRef)字典,NULL);



//建立查询字典   NSMutableDictionary  * searchDictionary =, [[NSMutableDictionary 字典);   ,//设置查询字典   [searchDictionary  setObject: (id) kSecClassGenericPassword  forKey: (id) kSecClass];   ,   NSString  * itemIDString =, @" MyPasswordForFtp";   * itemID=NSData  [itemIDString  dataUsingEncoding NSUTF8StringEncoding):;   [searchDictionary  setObject: itemIDforKey: (id) kSecAttrGeneric);   ,   NSString  * account =, @" com.mykeychain.ftppassword";   NSString  * service =, @" com.mykeychain.ftppassword";   [searchDictionary  setObject: account  forKey: (id) kSecAttrAccount];   [searchDictionary  setObject: service  forKey: (id) kSecAttrService];   ,//,建立更新字典   NSMutableDictionary  * updateDictionary =, [[NSMutableDictionary 字典);   ,//,设置要更新的新密码   时间=NSString *, newPassword  @" 654321“;   NSData  * passwordData =, [newPassword  dataUsingEncoding NSUTF8StringEncoding):;   [updateDictionary  setObject: passwordData  forKey: (id) kSecValueData];   ,//进行更新   OSStatus  status =, SecItemUpdate (searchDictionary (CFDictionaryRef), (CFDictionaryRef) updateDictionary);

谈谈iOS钥匙扣的使用