美文网首页Ios@IONIC
使用keychain保存用户名和密码等敏感信息 Keychain

使用keychain保存用户名和密码等敏感信息 Keychain

作者: 随风飘荡的小逗逼 | 来源:发表于2016-09-29 10:03 被阅读434次

iOS的 keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个ios程序都有一个独立的keychain存储。相对于 NSUserDefaults、文件保存等一般方式,keychain保存更为安全,而且keychain里保存的信息不会因App被删除而丢失,所以在 重装App后,keychain里的数据还能使用。从ios 3。0开始,跨程序分享keychain变得可行。

如何需要在应用里使用使用keyChain,我们需要导入Security.framework ,keychain的操作接口声明在头文件 SecItem.h里。直接使用SecItem.h里方法操作keychain,需要写的代码较为复杂,为减轻咱们程序员的开发,我们可以使用一些已经封 装好了的工具类,下面我会简单介绍下我用过的两个工具类:KeychainItemWrapper和SFHFKeychainUtils。

KeychainItemWrapper是apple官方例子“GenericKeychain”里一个访问keychain常用操作的封装类,在官网上 下载了GenericKeychain项目后,只需要把“KeychainItemWrapper.h”和 “KeychainItemWrapper.m”拷贝到我们项目,并导入Security.framework 。 KeychainItemWrapper的用法:

/** 初始化一个保存用户帐号的KeychainItemWrapper */

KeychainItemWrapper*wrapper=[[KeychainItemWrapper alloc]initWithIdentifier:@"Account Number"

accessGroup:@"YOUR_APP_ID_HERE.com.yourcompany.AppIdentifier"];

//保存帐号

[wrapper setObject:@"<帐号>"forKey:(id)kSecAttrAccount];

//保存密码

[wrapper setObject:@"<帐号密码>"forKey:(id)kSecValueData];

//从keychain里取出帐号密码

NSString*password=[wrapper objectForKey:(id)kSecValueData];

//清空设置

[wrapper resetKeychainItem];

其中方法“- (void)setObject:(id)inObject forKey:(id)key;”里参数“forKey”的值应该是Security.framework 里头文件“SecItem.h”里定义好的key,用其他字符串做key程序会崩溃!

SFHFKeychainUtils是另一个封装了KeyChain简单操作的第三方类库,使用上比KeychainItemWrapper要简单点,SFHFKeychainUtils只提供了获取、保存和删除三个方法:

SFHFKeychainUtils提供了在iOS keychain中安全的存储密码的工具

下载地址https://github.com/ldandersen/scifihifi-iphone/tree/master/security

1、引入Security.frameWork框架。

2、引入头文件:SFHKeychainUtils.h.

3、存密码:

[SFHFKeychainUtils storeUsername:@"dd" andPassword:@"aa"forServiceName:SERVICE_NAME updateExisting:1 error:nil];

[SFHFKeychainUtils deleteItemForUsername:@"dd" andServiceName:SERVICE_NAME error:nil];

4、取密码:

NSString *passWord =  [SFHFKeychainUtils getPasswordForUsername:@"dd"andServiceName:SERVICE_NAME error:nil];

相关文章

  • iOS开发使用keychain保存用户名及密码

    KeyChain是苹果提供的一种安全的保存用户名、密码、证书的方式,将敏感信息保存在keychain中后,这些信息...

  • iOS开发-使用KeyChain保存密码等信息

    最近使用了KeyChain实现保存密码等敏感信息的功能,使用了SAMKeychain,但是出现了保存密码信息失败的...

  • 使用keychain保存用户名和密码等敏感信息 Keychain

    iOS的 keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个ios程序都有一个独...

  • IOS使用 SFHFKeychainUtils 在 iOS ke

    为什么使用Keychain存储用户敏感信息 : iOS的keychain服务提供了一种安全的保存私密信息(密码,序...

  • SFHFKeychainUtils

    使用Keychain存储用户敏感信息 iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书...

  • 使用KeyChain处理用户名和密码

    使用KeyChain处理用户名和密码 KeyChain 本地持久化用户名和密码是常见的需求。为什么不用NSUser...

  • iOS Keychain使用说明

    前言 Keychain 在 Mac 上大家都比较熟悉, 主要进行一些敏感信息存储使用 如用户名,密码,网络密码,认...

  • ios Keychain存储

    iOS设备中的Keychain是一个安全的存储容器,可以用来为不同应用保存敏感信息比如用户名,密码,网络密码,认证...

  • 使用KeyChain保存敏感信息

    Demo KeyChain基础 为什么使用KeyChain呢?第一个原因:安全性高。在iOS中保存数据的方式有很多...

  • keychain(一)

    iOS keychain 主要是用来保存一些用户敏感数据。比如用户密码,token。keychain是用SQLit...

网友评论

    本文标题:使用keychain保存用户名和密码等敏感信息 Keychain

    本文链接:https://www.haomeiwen.com/subject/qdgcyttx.html