博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用钥匙串,在应用里保存用户密码的方法(ASIHTTPRequest清除keyChain方法)
阅读量:5966 次
发布时间:2019-06-19

本文共 1276 字,大约阅读时间需要 4 分钟。

想在应用里保存帐号、密码等信息的话,直接存到 plist 里显然是不负责任的,自己折腾加密既麻烦又不能保证不被反编译破解。实际上苹果 iOS 和 Mac OS X 系统自带了一套敏感信息保存方案:"钥匙串" (Keychain)。

    用原生的 Security.framework 就可以实现钥匙串的访问、读写。但是只能在真机上进行,模拟器会出错。在 Github 上有个封装的非常好的类来实现这个功能,让你既能在模拟器又能在真机上访问钥匙串。类的地址: 

    具体代码:

//获取密码

+ (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error;

//保存密码

+ (void) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting error: (NSError **) error;

//删除密码

+ (void) deleteItemForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error;

原文地址:  

ASIHTTPRequest清除keyChain方法:    

在用ASIHTTPRequest的时候,如果设置了 

  1. [request setUseKeychainPersistence:YES];  

那么你的证认信息将保存在keyChain里,即是是错误的认识也会保存,错误的其实不应该保存,于是我们得想办法将错误的从keyChain中清除掉,读了一下源码,找到了方法,直接上代码,只需要将下面代码

  1. [ASIHTTPRequest removeCredentialsForProxy:[request proxyHost] port:[request proxyPort] realm:[request proxyAuthenticationRealm]];  
  2. NSDictionary *credentials = [request findSessionProxyAuthenticationCredentials];  
  3. [ASIHTTPRequest removeProxyAuthenticationCredentialsFromSessionStore:[credentials objectForKey:@"Credentials"]];  

加入到

  1. [request setFailedBlock:^{ }];  

中即可

 这样,当错误的时候,就会将认识信息删除。

转载地址:http://hdtax.baihongyu.com/

你可能感兴趣的文章
工作四周年
查看>>
sql定时自动备份(定时作业)
查看>>
Excel 2013 表格自用技巧
查看>>
ubuntu安装VNC、Xfce桌面
查看>>
浅析支付系统的整体架构
查看>>
二位数组
查看>>
unix文件权限
查看>>
Python 模拟鼠键
查看>>
布局类组件介绍
查看>>
2017-2018-2 20155224『网络对抗技术』Exp7:网络欺诈防范
查看>>
tomcat 搭建
查看>>
CSS:ie6下漂移布局所遇到的问题
查看>>
Source Code Review
查看>>
分享一下我安装启动Jmeter出错时的解决办法
查看>>
java 调用process
查看>>
用a标签实现submit提交按钮的效果
查看>>
第十周
查看>>
毕向东_Java基础视频教程第20天_IO流(1~4)
查看>>
ES5之defineProperty
查看>>
几图理解BeautifulSoup
查看>>