iOS的Keychain可以实现App间的数据共享

百度的移动端产品,有一点体验做的非常好。比如你手机里面新装了百度云和百度贴吧,现在登录百度云,再打开百度贴吧,会发现虽然之前你从没登录过贴吧,但这时候竟然用你登录百度云的账号自动登录了,省去了你再去登录的步骤。这里有两个关键点,一是,百度的账号是全平台打通的,你的百度云账号和贴吧账号是同一个;二是,iOS平台的百度云和贴吧两个App之间进行了用户数据共享。第一点不说了,百度的事,跟我们没关系。想讨论的是第二点,我们知道iOS上,利用沙盒机制,App之间是互相隔离的,这保证了安全性,但也很封闭。那如何能实现,在这样的封闭环境下“翻墙”去连接别的App的数据呢?iOS也考虑到了这点,提供了Keychain!

iOS设备中的Keychain是一个安全的存储容器,可以用来为不同应用保存敏感信息比如用户名,密码,网络密码,认证令牌。苹果自己用keychain来保存Wi-Fi网络密码,VPN凭证等等。它是一个在所有app之外的sqlite数据库。

Keychain的特点

  1. Keychain会对保存在其中的数据进行加密(但可能也不绝对安全,越狱手机或许能拿到其中数据);
  2. Keychain是存在与沙盒之外的,当应用删除之后,app存储的数据并没有被删掉,第二次安装时只要读取Keychain里的数据,即可得到以前存储的信息;
  3. 相同Team Id的App可以通过Keychain来共享数据
  4. 获取设备唯一标识目前最佳的办法是IDFV+Keychain组合。IDFV是设备区别应用提供商的,可以作为应用唯一标示符。但是IDFV缺陷就是当设备删除了该所有应用提供商的app之后,IDFV值会发生变化。利用Keychain上面的第2个特点可以解决这个问题。

看到Keychain的第三个特点,也就清楚iOS上如何实现App间的数据共享了。当然了,为了安全考虑,还是有些限制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值