我正在测试KeychainItemWrapper
设备上应用程序内部的登录流程(使用)。如何为我的应用重置/删除钥匙串?
在模拟器,我做它通过点击iPhone模拟器- >重置内容和设置...。
钥匙串项目位于iOS沙箱中,用户无权删除不需要的钥匙串项目。这些只能通过API访问。
KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:[[NSBundle mainBundle] bundleIdentifier] accessGroup:nil];
//或访问钥匙串的方式
[keychainItem resetKeychainItem];
或者您可以从设备设置,常规,重置,重置所有设置中重置设备>>。但是,它将重置设备上安装的每个应用程序的钥匙串。
您可以使用“钥匙串转储器”转储钥匙串数据。抓住以下链接
https://github.com/ptoomey3/Keychain-Dumper
只需转到该URL并下载zip文件并解压缩即可。在此文件夹中,我们唯一感兴趣的文件是keychain_dumper二进制文件。在其权限中指定了钥匙串中的应用程序允许访问的信息。该二进制文件使用具有通配符权利的自签名证书进行了签名,因此可以访问所有钥匙串项。还可能有其他方法来确保授予所有钥匙串信息,例如使权利文件包含所有钥匙串访问组,或使用提供对所有钥匙串数据的访问的特定钥匙串访问组。例如,一个工具Keychain-viewer使用以下观点。
com.apple.keystore.access-keychain-keys
com.apple.keystore.device
1)只需将此二进制文件上传到/ tmp文件夹中的设备中,并确保其可执行文件即可。
2)现在,确保存储在/private/var/Keychains/keychain-2.db位置的钥匙串数据库文件是世界可读的。
3)现在转到终端,您可以通过传递命令来转储数据
.keychain_dumper
4)上面的命令将列出所有的用户名和密码。但以上只会丢弃通用密码和互联网密码。您可以使用“ -h”命令来查看用法信息。
5)您可以使用“ -a”命令转储所有信息。
您可以在此处阅读更多信息和示例,以 转储钥匙串数据
- 从此处下载keychainWrapper并将其添加到您的项目中。
- 在要重置钥匙串的viewController中编写以下代码。
码:
#import "KeychainItemWrapper.h"
@interface YourViewController ()
{
KeychainItemWrapper *keychainItemWrapper;
}
- (void)viewDidLoad {
[super viewDidLoad];
keychainItemWrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"appname" accessGroup:nil];
}
- (IBAction)logoutButtonPressed:(id)sender {
[keychainItemWrapper resetKeychainItem];
}
文章标签:ios , keychain
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!
评论已关闭!