使用iOS Keychain(译)

769 阅读2分钟

原文地址:https://www.andyibanez.com/using-ios-keychain/ Keychain 如果你是一个开发者,你迟早会在app中存储一些敏感的数据.把敏感数据存储到NSUserDefaults是大大的不可以的.像OS X,iOS为你的app提供了一个keychain用来存储所有的敏感类型的数据.keychain可以存放需要存放在app中的用户的密码或者银行信息.如果你只是刚开始作为一个iOS开发者,或者是一个中级开发者,存储敏感数据是个可怕的想法,不过好消息是,iOS提供了一套简单的API来使用keychain,使用iOS中的keychain API非常简单,只需四个重要的方法.

The Keychain Essentials. iOS的Keychain 与 OS X的keychain是非常不同的. OS X的keychain比iOS要复杂的多,这个教学只是对于iOS keychain的. 第一,在OS X中,很用app可以请求获取任何当前的信息存储到keychain中,如果你是一个OS X用户,你可以唤起一个提示框想要接入你keychain中的数据,像这样:

mac-os-x-105-leopard-keychain-access-password-dialogue-box-300x192.png

一旦你输入密码,这个keychain会打开并且会获取需要的数据,并且交给那个请求获取keychain的app来接入到keychain.

第二,OS X keychain有很多在iOS中没有的属性,这也是为什么iOS中的keychain很简单.在OS X,用户可以为不同的事情创建超过一个的keychain,一个用来验证,一个用来记录密码,或者其他的一些敏感数据(并不是每个人都会需要这个,但是这个keychain的属性可以被任何需要的人使用).

在iOS中,每个app拥有自己的keychain,并且这个keychain不能被其他的app访问,除非这两个app的keychain都是有你保存的,拥有共享keychain的权利,并且两者都在一个Keychain Access Group(s)(钥匙串组).