IOS中使用sskeychain调用keychain(钥匙串)保存密码

本文介绍了iOS中Keychain作为安全密码管理器的特性,对比了Keychain与UserDefaults保存数据的区别。Keychain保存的数据经过加密,适合存储敏感信息。文章详细讲解了如何使用SSKeychain库进行密码的设置、提取和删除操作,强调了在不同场景下灵活运用Keychain的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.keychain(钥匙串)的简介及功能

keychain的主要功能就是帮助用户安全地记住他的密码,keychain保存的密码文件都是经过加密的,其它人不能直接通过打开keychain的文件获得保存在keychain中的密码。

Apple还提供了使用keychain保存密码的API,如果应用程序使用了keychain API来保存密码,保存密码的结果都可以在钥匙串应用中查看到。

2.IOS中使用keychain和userdefaults保存数据的对比

     userdefault适合保存一些轻量级的数据,使用userdefault保存的数据加载的时候要快一些,数据以明文的形式保存在.plist文件中,不适合用来保存密码信息。文件的位置是Library/Application Support/iPhone Simulator/模拟器版本/Applications/应用对应的数字/Library/Preference/.plist文件

     keychain采用的是将数据加密之后再保存到本地的,这样对数据而言有更高的安全性,适合保存密码之类的数据。数据保存的目录是Library/Application Support/iPhone Simulator/模拟器版本/Library/Keychains/

3.sskeychain的使用

SSKeyChain的方法中涉及到的变量主要有三个,分别如这一小节的标题所示,是password、service、account。password、account分别保存的是密码和用户名信息。service保存的是服务的类型,就是用户名和密码是为什么应用保存的一个标志。

setPassword的功能是保存account、service、password的,accoutsForService是提取对应于特定service的所有accouts,从返回结果可以看出是返回结果是Array类型的,并且Array的每一个元素是以key-value格式保存的数据。如果需要找出特定的用户名的话,需要使用valueForKey@“acct”来定位用户名。(由于在这之前keychain已经保存了一个数据,所以lastObject对应的下标是2.)

     在具体的使用过程中,根据需求,可以用在同一个service中保存多个用户名和密码,在需要提取的时候提取最后一个,或者根据用户名来提取特定密码。也可以在同一个service中只保存一个用户名和密码,在需要保存新的用户名和密码的时候将原来保存的密码删除。


\

\

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值