重置设备上的钥匙串

我正在我的应用程序中的设备上testingloginstream(使用KeychainItemWrapper )。 如何重置/删除我的应用程序的钥匙串?

在模拟器上,我通过点击iOS模拟器 – > 重置内容和设置…。

钥匙串项目在iOS沙箱中,用户无权删除不需要的钥匙串项目。 这些只能通过API访问。

 KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:[[NSBundle mainBundle] bundleIdentifier] accessGroup:nil]; 

//或者您如何访问您的钥匙串

  [keychainItem resetKeychainItem]; 

或者您可以通过设备设置,常规,重置,重置所有设置来重置您的设备>>。 但是,它会重置设备上安装的每个应用程序的钥匙串。

您可以使用Keychain转储器转储钥匙串数据。 抓住以下链接https://github.com/ptoomey3/Keychain-Dumper

只要到这个url下载zip文件并解压缩即可。 在这个文件夹中,我们感兴趣的唯一文件是keychain_dumper二进制文件。 允许钥匙串中的应用程序访问的信息在其权利中指定。 该二进制文件使用带有通配符权利的自签名证书进行签名,因此可以访问所有的钥匙串项目。 也可以有其他方法来确保所有的钥匙串信息都被授予,例如让权利文件包含所有的钥匙串访问组或者使用特定的钥匙串访问组来访问所有的钥匙串数据。 对于例如工具钥匙链查看器使用以下授权。

com.apple.keystore.access,钥匙扣,钥匙

com.apple.keystore.device

1)只需将这个二进制file upload到您的设备的/ tmp文件夹中,并确保其可执行文件。

2)现在确保存储在/private/var/Keychains/keychain-2.db位置的钥匙串数据库文件是世界可读的。

3)现在去terminal,你可以转储你的数据通过传递命令

.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]; }