简单使用 SSKeychain 存储密码
来源:互联网 发布:kj90数据采集传输协议 编辑:程序博客网 时间:2024/06/17 03:09
一.首先要理解keychain与userdefaults的区别:
1.keychain是将数据加密后存储在本地,更安全.路径:Library/Application Support/iPhone Simulator/模拟器版本/Library/Keychains/
userdefaults数据以明文的形式保存在.plist文件中.路径:Library/Application Support/iPhone Simulator/模拟器版本/Applications/应用对应的数字/Library/Preference/.plist文件
2.当你删除APP后keychain存储的数据不会删除,user defaults存储的数据会随着APP而删掉
二.SSkeychain是对keychain的封装 实现了添加/删除/查询用户名和密码.
三.流程
1.使用pod:(或者不使用pod,直接将下载好的SSKeychain文件夹拖进工程里)
pod 'SSKeychain'
2.代码
//
// ViewController.m
// SSKeychainTest
//
// Created by ZXGavin on 15/12/22.
// Copyright © 2015年 ZXGavin. All rights reserved.
//
#import "ViewController.h"
#import <SSKeychain.h>
#import <SSKeychainQuery.h>
//应用名称(保证唯一性)
#define ServiceName @"com.zx.tec.SSKeychainTest"
//账号
#define Account @"test2"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
/**
* 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;
*/
#pragma mark - 开始使用 SSKeychain
//获取uuid(如果想获取唯一标示,存储以 uuid为密码存储 下次登陆直接读取检测是否安装)
// CFUUIDRef uuid = CFUUIDCreate(NULL);
// assert(uuid != NULL);
// CFStringRef uuidStr = CFUUIDCreateString(NULL, uuid);
// NSLog(@"%@~~%@", uuidStr, [NSString stringWithFormat:@"%@", uuidStr]);
/**
* + (NSString *)passwordForService:(NSString *)serviceName account:(NSString *)account;//获取指定 serviceName和 account的密码
*
* + (BOOL)setPassword:(NSString *)password forService:(NSString *)serviceName account:(NSString *)account;//存储指定 serviceName和 account 的密码
*
*/
NSString *passWord = @"123456";
if (![SSKeychainpasswordForService:ServiceNameaccount:Account]) {//查看本地是否存储指定 serviceName和 account的密码
//如果没设置密码则设定密码并存储
[SSKeychainsetPassword:passWordforService:ServiceNameaccount:Account];
//打印密码信息
NSString *retrieveuuid = [SSKeychainpasswordForService:ServiceNameaccount:Account];
NSLog(@"SSKeychain存储显示:未安装过:%@", retrieveuuid);
}else{
//曾经安装过则直接能打印出密码信息(即使删除了程序再次安装也会打印密码信息)区别于 NSUSerDefault
NSString *retrieveuuid = [SSKeychainpasswordForService:ServiceNameaccount:Account];
NSLog(@"SSKeychain存储显示 :已安装过:%@", retrieveuuid);
}
#warning 区别于 NSUSerDefault (删除应用程序后存储的数据就会消失)
if (![[NSUserDefaultsstandardUserDefaults]boolForKey:@"TestOne"]) {
[[NSUserDefaultsstandardUserDefaults]setBool:YESforKey:@"TestOne"];
NSLog(@"NSUSerDefault存储显示:未安装");
}else{
NSLog(@"NSUSerDefault存储显示:安装过");
}
}
- 简单使用 SSKeychain 存储密码
- 简单使用 SSKeychain 存储密码
- IOS使用sskeychain调用keychain保存密码
- IOS使用sskeychain调用keychain保存密码
- IOS中使用sskeychain调用keychain(钥匙串)保存密码
- SSKeychain
- iOS中本地保存密码利用SSKeyChain
- xcode iOS 本地保存密码 SSKeyChain
- 简单存储车牌号和密码
- Android数据存储之SharedPreferences的简单使用(保存用户名和密码)
- 简单使用存储过程
- ios sskeychain
- MD5加密算法--->java使用md5存储密码
- [存储]Android使用SQLiteOpenHelper简单存储
- Oracle存储过程简单使用
- postgresql 存储过程简单使用
- 存储过程的简单使用
- Mysql存储过程 ----- 简单使用
- Cgroups控制cpu,内存,io示例
- Android6.0以后上传头像
- Android利用xutils框架与服务器连接
- Git查看、删除、重命名远程分支和tag
- 字符串最后一个单词的长度
- 简单使用 SSKeychain 存储密码
- 解决图片滚轮放大以后覆盖其他组件的问题
- 各种字符集和编码详解
- LeetCode: 448. Find All Numbers Disappeared in an Array
- window7环境下使用easyBCD硬盘安装Ubuntu双系统
- 用单链实现通讯录
- 浏览器判别下载安装/打开Android应用程序
- 找数字
- java String字符串