keychain介绍

1. keychain概述

1.1 keychain是什么

苹果官网对钥匙串的描述

iOS keychain 是一个相对独立的空间,是用SQLite进行存储的,可以加密我们保存的数据,并且使用keychain service API增删改查。

keychain的是以item为单位存储的。data是数据本身,attributes就是数据库中的键。

1.2 keychain的优点

相对于NSUserDefaults、plist文件保存等一般方式,keychain有以下优点

  • keychain钥匙串中的信息不会因为卸载/重装app而丢失

  • keychain保存更为安全

1.3 keychain的用途

  • 保存密码、证书、设备唯一码

  • 历史数据

例子:keychain保存did和登录历史数据。

keychain适合保存一些比较小的数据量的数据,如果要保存大的数据,可以考虑文件的形式存储在磁盘上,在keychain里面保存解密这个文件的密钥。

2. keychain的基本使用

2.1 keychain item 的类型和主键

kSecClass可以有以下取值

  • kSecClassGenericPassword //普通密码

  • kSecClassInternetPassword  //互联网密码

  • kSecClassCertificate//证书

  • kSecClassKey//加密的内容

  • kSecClassIdentity //身份相关的

每种类型的Keychain item都有不同的键作为主要的Key也就是唯一标示符用于搜索,更新和删除

类型为GenericPassword的item必须使用kSecAttrAccount和kSecAttrService作为主要的key

item类型 可指定的attributes
kSecClassInternetPassword

kSecAttrAccess (OS X only)

       kSecAttrAccessControl

       kSecAttrAccessGroup (iOS; also OS X if kSecAttrSynchronizable and/or kSecUseDataProtectionKeychain set)

       kSecAttrAccessible (iOS; also OS X if kSecAttrSynchronizable and/or kSecUseDataProtectionKeychain set)

       kSecAttrCreationDate

       kSecAttrModificationDate

       kSecAttrDescription

       kSecAttrComment

       kSecAttrCreator

       kSecAttrType

       kSecAttrLabel

       kSecAttrIsInvisible

       kSecAttrIsNegative

       kSecAttrAccount

       kSecAttrSecurityDomain

       kSecAttrServer

       kSecAttrProtocol

       kSecAttrAuthenticationType

       kSecAttrPort

       kSecAttrPath

       kSecAttrSynchronizable

<
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值