KeyChain的使用

在应用里使用使用keyChain,我们需要导入Security.framework,接着需要借助一下第三方的的封装库,可以使用KeychainItemWrapper或者SFHFKeychainUtils,网上有很多,大家可以搜一下。(真机测试)

这里我主要讲一下KeychainItemWrapper的使用,有一点我们需要知道的是KeyChain有两个访问区,私有区和公共区。私有区(sandbox)为本程序存储的任何数据都对其他程序不可见。而要想访问公共区的内容需要新建一个plist文件。注意:该文件最好和工程文件在同一个目录下。



“yourAppID.com.yourCompany.whatever”就是你要起的公共区名称,除了whatever字段可以随便定之外,其他的都必须如实填写。这个文件的路径要配置在 Project->build setting->Code Signing Entitlements里,否则公共区无效。


配置好后,须用你正式的证书签名编译才可通过,否则xcode会弹框告诉你code signing有问题。所以,苹果限制了你只能同公司的产品共享KeyChain数据,别的公司访问不了你公司产品的KeyChain。

/** 初始化一个保存用户帐号的KeychainItemWrapper */
KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"Account Number" accessGroup:@"YOUR_APP_ID_HERE.com.yourcompany.AppIdentifier"];  
注意:accessgroup的参数若是想存在公共区就必须设置,若不需要共享数据可以直接设置为nil
//保存帐号
[wrapper setObject:@"帐号" forKey: ( __bridge  id )kSecAttrAccount];    
//保存密码
[wrapper setObject:@"密码" forKey: ( __bridge  id )kSecValueData];    
 //从keychain里取出帐号密码
NSString *password = [wrapper objectForKey: ( __bridge  id )kSecValueData];      
 //清空设置
[wrapper resetKeychainItem];
其中方法“- (void)setObject:(id)inObject forKey:(id)key;”里参数“forKey”的值应该是Security.framework 里头文件“SecItem.h”里定义好的key,用其他字符串做key程序会崩溃!

参考地址:http://www.2cto.com/kf/201311/255684.html

http://blog.csdn.net/meegomeego/article/details/16858537




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值