iOS 探讨之 Keychain Services

阐述
数据安全性对于各阶段的程序猿来说都是很重要的,最近因产品需要提升安全性,研究了一下Keychain并记录之。

探讨
- Keychain Services是什么?
Keychain Services是苹果提供的,可对数据进行加密的服务。该服务可以保证将应用从设备删除后,存储在Keychain中的数据依旧存在;另外针对同一Share Group中的应用可以共享Keychain中的数据。
Keychain Services包含在框架 Security.framework中,使用时需要先添加该框架,并引入头文件 <Security/Security.h>。

- 应用场景?
Keychain可用于保护少量的数据,如密码、密钥、证书和备忘录,但是如果目标对象为音频、视频、图像等文件,考虑用第三方加密库进行加密。


- 怎么用?
苹果在框架中提供了High Level及Lower Level两种级别的封装,不过High Level只能在macOS中使用,故不再讨论它。Lower Level与High Level相比,更加贴近底层,故它的功能比High Level更加强大。
下面先跟四个兄弟打个招呼,也就是我们常说的“增删改查”。

OSStatus SecItemAdd(CFDictionaryRef attributes, CFTypeRef * __nullable CF_RETURNS_RETAINED result)
    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_2_0);
OSStatus SecItemDelete(CFDictionaryRef query)
    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_2_0);
OSStatus SecItemUpdate(CFDictionaryRef query, CFDictionaryRef attributesToUpdate)
    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_2_0);
OSStatus SecItemCopyMatching(CFDictionaryRef query, CFTypeRef * __nullable CF_RETURNS_RETAINED result)
    __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_2_0);
SecItemAdd 用来创建新的钥匙对象
SecItemDelete  用来移除某个钥匙对象
SecItemUpdate 用来修改指定钥匙对象
SecItemCopyMatching 用来取回指定钥匙所隐藏的信息

我们发现这四个函数的第一个参数均是CFDictionaryRef类对象,我们可以使用字典保存,使用时进行CFDictionaryRef强转,下方我们用钥匙串项来称呼它。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值