iOS钥匙串

钥匙串

  • 苹果的"生态圈",钥匙串访问,使用 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];

}

时间: 2024-08-10 03:52:31

iOS钥匙串的相关文章

iOS钥匙串Keychain浅析

根据苹果的介绍,iOS设备中的Keychain是一个安全的存储容器,可以用来为不同应用保存敏感信息比如用户名,密码,网络密码,认证令牌.苹果自己用keychain来保存WiFi密码,VPN凭证等.它是一个SQLite数据库,位于/private/var/Keychains/keychain-2.db,其保存的所有数据都是加密过的. 比如在Mac的LaunchPad中,就有一个钥匙串访问,打开就可以看到存储有很多重要的信息: . 开发者通常会希望能够利用操作系统提供的功能来保存凭证(credent

iOS钥匙串Keychain--初级使用+浅浅的理解

我的邮件:[email protected] 如果有这篇文章对您有帮助就点下推荐或者随意评论一个呗,谢谢谢谢,随便转载,标明出处就好. 4.Keychain 使用? ---为了实用最大化我觉得我应该直接先说使用! 当然是使用第三方库啦:sskeychain 3000+星星的库不开玩笑.github地址:https://github.com/soffes/sskeychain 导入完之后首先,编译一下有无错. 如果是自己手动导入: 1.把SSKeychain.h SSKeychain.m SSKe

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

01-钥匙串 1. 通过系统提供的钥匙串功能可以在本地保存密码,系统使用AES的方式对密码加密 a. 查看Safari中保存的密码 2. 使用第三方框架SSKeychain把密码保存到钥匙串和获取钥匙串中的密码 a. 获取钥匙串中的所有用户 [SSKeychain allAccounts] b. 把密码保存到钥匙串中 service可以用boundleID [SSKeychain setPassword:self.pwdView.text forService:kPWDCHAINKEY acco

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

一,URL方案 URL方案有3个主要用途:根据设备上其他应用的存在与否调整逻辑,切换到其他应用以及响应打开你的应用的其他应用.你还可以通过URL方案从某个站点或是在基于Web的认证流程结束是打开应用. 1,实现自定义的URL方案. 2,感知其它应用的存在. 3,高级通信. 1)base64编码,专门用于将二进制数据表示为ASCII文本字符串.可以使用一个标准化的转换表格将二进制数据的每6位编码为一个字符. 2)要想创建图像数据字符串,需要使用之前介绍的3个步骤.序列化图片,使用base64对其进

ios证书--不用Mac钥匙串创建iOS证书

iOS证书分两大块,开发证书和发布证书,对应的还有开发描述文件和发布描述文件. 我们在开发发布iOS应用中,要申请各种的证书,在开发者中心创建这些证书比较麻烦,最气的是开发者中心的访问速度时快时慢,经常为了创建一个证书花费大量时间,而且也还要Mac电脑钥匙串,如果没有Mac只能干瞪眼,跨平台开发的可能没搭建Mac环境,下面介绍在Windows环境下不用钥匙串迅速创建iOS各类证书及描述文件的方法,不用耗时耗力了. 这里用到一个工具Appuploader,可以在Windows.Linux和Mac系

iOS APP 密码保存到钥匙串

我们在开放APP时,通常要把一些比较重要的用户信息保留到APP中,我们很多时候的做法是直接裸存到NSUserDefaults.这种做法的很明显的缺点是不够安全,以下我们将用代码封装一个类,把用户名账号密码等比较重要的信息保存到苹果自带的钥匙串中,这样除非整个iOS的安全机制被破解,要不然你储存的东西就会相对的安全,这样做还有一个好处就是,当用户删除该APP,重新下载安装了,也能读取到之前保存到钥匙串里的数据. 直接上代码: .h // // KeychainTool.h // 密码保存到钥匙串

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

我知道没Demo看博客很痛苦,所以Demo先行:https://github.com/rayshen/GIKeychainGroupDemo 该demo里有2个工程,你先运行任何一个会存储一个值,再运行另一个会访问之前的app存储的值,并修改. 官方:https://developer.apple.com/library/ios/samplecode/GenericKeychain/Introduction/Intro.html 之前博客使用过Keychain,实现了数据删除APP后还能保存,但

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

IOS系统中,获取设备唯一标识的方法有很多: 一.UDID(Unique Device Identifier) UDID的全称是Unique Device Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和数字组成. 二.UUID(Universally Unique Identifier)  UUID是Universally Unique Identifier的缩写,中文意思是通用唯一识别码. 三.MAC Address 四.OPEN UDID 五.广告标

iOS数据存储-钥匙串存储

2017.11.20 14:41* 字数 227 阅读 678评论 0喜欢 0 钥匙串介绍 1. 表示设备唯一号的标识,在IOS7中要么被禁止使用,要么重新安装程序后两次获取的标识符不一样. 2. 由于IOS系统存储的数据都是在sandBox里面,一旦删除App,sandBox也不复存在.好在有一个例外,那就是keychain(钥匙串). 3. 通常情况下,IOS系统用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码.证书等等,就需要使用更为安全的keychain了. 4