文/清雪飘香(简书作者)
原文链接:http://www.jianshu.com/p/c41525172aee
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

这次的Xcode 事件,让我们应用的安全意识更强了。之前项目中存储都是用的NSUserDefault , 那是存放在应用沙盒中,是可以逆向出你的用户名和密码的。

OS X 保存密码有个很好的机制,叫做钥匙串,同理,iOS 开发也有这种机制。

将账号密码保存到钥匙串,有个很好的第三方库,SSKeyChain,[github 地址](https://github.com/soffes/sskeychain)。

将SSKeyChain 引入需要用到的类。只需要调用几个类方法就轻松保存账号密码,或者取出账号密码。

service 一般为应用的app name ,是唯一的标识。可以随意写,但是必须和下面用的地方一样。

保存账号密码 (如果你的账号不存在,这里是创建一个账号并保存账号和密码,如果这个账号已经存在,它是更新密码,源代码中有标明)

[SSKeychain setPassword:self.passWd.text forService:@"demo" account:self.userName.text];

通过用户名获得密码

self.passWd.text = [SSKeychain passwordForService:@"demo" account:self.userName.text];

获取最后一个存放的账号密码。

1.获得数组中最后一个账号(密码无法通过这种方式获取)

self.userName.text = [SSKeychain allAccounts].lastObject[@"acct"];

2.密码只能通过这种方式去获得。输出sskeychain 所有的参数没有密码选项,也刚好说明了它 的安全性。

self.passWd.text = [SSKeychain passwordForService:@"demo" account:self.userName.text];

 

iOS 应用开发,用户密码存储技术--KeyChain的更多相关文章

  1. 安卓开发_数据存储技术_SharedPreferences类

    SharedPreferences类 供开发人员保存和获取基本数据类型的键值对. 该类主要用于基本类型,例如:booleans,ints,longs,strings.在应用程序结束后,数据仍旧会保存. ...

  2. 安卓开发_数据存储技术_sqlite

    一.SQLite SQLite第一个Alpha版本诞生于2000年5月,它是一款轻量级数据库,它的设计目标是嵌入式的,占用资源非常的低,只需要几百K的内存就够了.SQLite已经被多种软件和产品使用 ...

  3. iOS开发——密码存储之keychain的使用

    iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式.每个ios程序都有一个独立的keychain存储.从ios 3.0开始,跨程序分享keychain变得可行. 下 ...

  4. Python开发之用户密码存储

    在各种线上应用中,用户名密码是用户身份认证的关键,它的重要性不言而喻.一方面,作为保护用户敏感数据的钥匙来说,一旦被破解,系统将敞开大门完全不设防.另一方面,密码这把钥匙本身就是非常敏感的数据:大多数 ...

  5. SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)

    前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真正的大型项目中经受住了考验:.Net版SAP RFC适配器组件和SharePoint 2013修改AD ...

  6. iOS:iOS开发中用户密码保存位置

    原文来自简书:http://www.jianshu.com/p/4af3b8179136/comments/1294203 如果要实现自动登录,不必每次打开应用都去登录,我们势必要把密码保存到本地.一 ...

  7. IOS开发之记录用户登陆状态,ios开发用户登陆

    IOS开发之记录用户登陆状态,ios开发用户登陆 上一篇博客中提到了用CoreData来进行数据的持久化,CoreData的配置和使用步骤还是挺复杂的.但熟悉CoreData的使用流程后,CoreDa ...

  8. 李洪强iOS开发之数据存储

    李洪强iOS开发之数据存储 iOS应用数据存储的常用方式 1.lXML属性列表(plist)归档 2.lPreference(偏好设置) 3.lNSKeyedArchiver归档(NSCoding) ...

  9. 用户登陆状态,ios开发用户登陆

    IOS开发之记录用户登陆状态,ios开发用户登陆 上一篇博客中提到了用CoreData来进行数据的持久 化,CoreData的配置和使用步骤还是挺复杂的.但熟悉CoreData的使用流程后,CoreD ...

随机推荐

  1. 织梦dede列表调用图集的第一张图片大图原图地址(非缩略图)

    dede(55) 我们在使用dede图片集的时候经常会碰到列表页或者内容页要调用一张图片而并非缩略图,那么碰到这样的问题怎么办呢?今天就给大家分享一个解决办法: 步骤一: 修改include/exte ...

  2. 2017-07-02(free uptime cat /proc/cpuinfo uname lsb_release)

    free -b 字节为单位显示 -k KB为单位显示,默认显示就是KB -m 以MB为单位显示 -g 以GB为单位显示 free -m free 显示说明 uptime 跟top命令第一行内容相同 c ...

  3. 移动端 iphone锁屏文字效果

    简易的仿照iphone 效果 笔记备份 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Conten ...

  4. junit3.8的使用

    今天开始junit使用系列,第一篇梳理junit3X系列,先贴下代码来体验下. 测试源代码如下: package test.junit38test; /** * @创建作者: LinkinPark * ...

  5. 清除Chrome浏览器的历史记录、缓存

    习惯了用360卫士清理浏览器缓存.历史记录等垃圾文件,但是今天用360清理过后,打开谷歌浏览器Chrome时, 发现它的历史记录(CTRL+ H)根本没有被清理掉,经过一番探索后,可以通过下面方法清除 ...

  6. java类路径classpath和包

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  7. zabbix-proxy搭建

    环境: 因为公司需要监控远程客户机,但server端无法主动连接agent端,客户端可以连接公司ip 公司有固定ip,可以开放某个端口给zabbixserver,客户机agent端可以主动通过外网连接 ...

  8. Linux防止ARP攻击的一些方法

    方法一,最常用的绑定网关 一般服务器的网关是不会变动的,且vps也适用. 一.查看当前网关 [root@local@xiaohuai ~]# arp -a ? (218.65.22.122) at 8 ...

  9. Java解决CSRF问题

    项目地址: https://github.com/morethink/web-security-csrf CSRF是什么? CSRF(Cross-site request forgery),中文名称: ...

  10. img标签实现和背景图一样的显示效果——object-fit和object-positon

    不知大家在做前端页面的时候,有没有遇到类似这样的问题:有一个不是正方形的图片,可能是宽度大于高度的,也可能是高度大于宽度的,而你又并不想用背景图的方式来做,要实现用img标签来让此图片显示出一个正方形 ...