钥匙串

  • 苹果的"生态圈",钥匙串访问,使用 AES 256 加密算法,能够保证用户密码的安全
  • 钥匙串访问SDK,是苹果在 iOS 7.0.3 版本以后公布的
  • 钥匙串访问的接口是纯 C 语言的,但是,网络上有一个哥们把它封装成 OC 的,使用相当简单!
  • 钥匙串访问的密码保存在哪里?
    • 只有苹果知道!是为了进一步保障用户的密码安全!
  • 钥匙串访问的第三方框架,是对 C 框架的封装,可以不用看源代码

框架地址

https://github.com/soffes/sskeychain

/// 所有账户

+ (NSArray *)allAccounts;

/// 获取所有账户信息

+ (NSArray *)accountsForService:(NSString *)serviceName;

/// 获取账号密码

+ (NSString *)passwordForService:(NSString *)serviceName account:(NSString *)account;

/// 删除账号密码

+ (BOOL)deletePasswordForService:(NSString *)serviceName account:(NSString *)account;

/// 将账号密码保存在钥匙串

+ (BOOL)setPassword:(NSString *)password forService:(NSString *)serviceName account:(NSString *)account;

保存钥匙串

///  保存用户信息

- (void)saveUserInfo {

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

// iOS 8.0 会直接写入沙盒,无需再使用 `[defaults synchronize];`

[defaults setObject:self.username forKey:HMUsernameKey];

// 将用户密码保存在钥匙串

NSString *bundleId = [NSBundle mainBundle].bundleIdentifier;

[SSKeychain setPassword:self.pwd forService:bundleId account:self.username];

}

从钥匙串加载密码

///  加载用户下信息

- (void)loadUserInfo {

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

self.usernameText.text = [defaults stringForKey:HMUsernameKey];

NSLog(@"%@", [SSKeychain allAccounts]);

NSString *bundleId = [NSBundle mainBundle].bundleIdentifier;

self.pwdText.text = [SSKeychain passwordForService:bundleId account:self.usernameText.text];

}

iOS钥匙串的更多相关文章

  1. iOS 钥匙串 指纹识别 get和Post请求的区别

    01-钥匙串 1. 通过系统提供的钥匙串功能可以在本地保存密码,系统使用AES的方式对密码加密 a. 查看Safari中保存的密码 2. 使用第三方框架SSKeychain把密码保存到钥匙串和获取钥匙 ...

  2. iOS 钥匙串存储用户数据

    参考: http://www.jianshu.com/p/f6d40065bb6c #import <Foundation/Foundation.h> #import <Securi ...

  3. 【读书笔记】iOS网络-应用间通信

    一,URL方案 URL方案有3个主要用途:根据设备上其他应用的存在与否调整逻辑,切换到其他应用以及响应打开你的应用的其他应用.你还可以通过URL方案从某个站点或是在基于Web的认证流程结束是打开应用. ...

  4. 【读书笔记】iOS-网络-应用间通信

    一,URL方案 URL方案有3个主要用途:根据设备上其他应用的存在与否调整逻辑,切换到其他应用以及响应打开你的应用的其他应用.你还可以通过URL方案从某个站点或是在基于Web的认证流程结束是打开应用. ...

  5. iOS Keychain钥匙串,应用间数据共享打造iOS上的全家桶

    Demo先行:https://github.com/rayshen/GIKeychainGroupDemo 该demo里有2个工程,你先运行任何一个会存储一个值,再运行另一个会访问之前的app存储的值 ...

  6. IOS 用keychain(钥匙串)保存用户名和密码

    IOS系统中,获取设备唯一标识的方法有很多: 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,顾名思义,它就是苹果I ...

  7. iOS数据存储-钥匙串存储

    2017.11.20 14:41* 字数 227 阅读 678评论 0喜欢 0 钥匙串介绍   1. 表示设备唯一号的标识,在IOS7中要么被禁止使用,要么重新安装程序后两次获取的标识符不一样. 2. ...

  8. iOS mac添加证书 不能修改“System Roots”钥匙串错误

    iOS mac添加证书 不能修改“System Roots”钥匙串错误 如图: 解决方式: 打开钥匙串---登录---,直接把证书拖过来 然后,查看--我的证书,里面,找到证书,即可

  9. iOS keyChain(钥匙串)的简单使用

    通常在开发中我们需要长久的保存某些值比如用户的账号密码等,对于隐私度很高的数据来说保证数据的安全性是尤为重要的.ios中的keyChain是一种很好的选择. 首先去开发者网站(https://deve ...

随机推荐

  1. Python字符串基础一

    下一篇:Python 序列通用操作介绍 写在前面 下学期开始上计算机网络的课程,现在已经在看相关书籍,希望结合python写出一个网络爬虫程序.利用学习C++后的空余时间来看看Python并在这里总结 ...

  2. python编程关键字

    1.常见关键字 (带有操作含义的关键字) for:循环 in:成员比较运算符 if :如果分支 elif:如果分支 else:其他分支 while:循环 def:定义函数 class:定义类 glob ...

  3. Leetcode 110. Balanced Binary Tree

    Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...

  4. K-means之matlab实现

    引入 作为练手,不妨用matlab实现K-means 要解决的问题:n个D维数据进行聚类(无监督),找到合适的簇心. 这里仅考虑最简单的情况,数据维度D=2,预先知道簇心数目K(K=4) 理论步骤 关 ...

  5. 【BZOJ-1941】Hide and Seek KD-Tree

    1941: [Sdoi2010]Hide and Seek Time Limit: 16 Sec  Memory Limit: 162 MBSubmit: 830  Solved: 455[Submi ...

  6. 【BZOJ-4514】数字配对 最大费用最大流 + 质因数分解 + 二分图 + 贪心 + 线性筛

    4514: [Sdoi2016]数字配对 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 726  Solved: 309[Submit][Status ...

  7. 【bzoj3158】 千钧一发

    http://www.lydsy.com/JudgeOnline/problem.php?id=3158 (题目链接) 题意 给出n个装置,每个装置i有一个特征值a[i]和一个能量值b[i],要求选出 ...

  8. 什么是RFC

    通俗的话来说,RFC是关于Internet的几乎所有重要的文字资料,相当于一个Internet的标准. 下面是查询网址:http://www.rfcreader.com/ 一下为百科定义: http: ...

  9. PostgreSQL Reading Ad Writing Files、Execution System Instructions Vul

    catalog . postgresql简介 . 文件读取/写入 . 命令执行 . 影响范围 . 恶意代码分析 . 缓解方案 1. postgresql简介 PostgreSQL 是一个自由的对象-关 ...

  10. JavaWeb---总结(十二)Session

    一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...