gpt4 book ai didi

Android android.credentials.UNLOCK 在没有密码的情况下初始化 keystore

转载 作者:太空狗 更新时间:2023-10-29 16:17:45 27 4
gpt4 key购买 nike

有一个随 secret 钥通过 AES 加密本地凭据,我按照下面的教程尝试安全地存储该 key ,然后能够稍后解密:

nelenkov.blogspot.co.uk storing applicationsecrets in androids

本教程解释了如何访问系统 keystore 并将您的密码存储在其中。

我面临的问题主要集中在调用 UNLOCK (android.credentials.UNLOCK) KeyStore。没有初始化 KeyStore 的设备(目前 API 低于 14)会显示一个对话框,要求输入 8 位密码。

该教程工作正常,但即使只显示一次此对话框,它也会打扰大多数用户。

有什么办法可以跳过这个对话框吗?

如果有人描述了一种在本地保存 key 的更好方法,我会更高兴。

最佳答案

KeyStore 不仅可以在 ICS 之前的设备上显示为已锁定。锁定 KeyStore 的最简单方法是:

  1. 通过设置 KeyGuard(模式、pin 或锁屏密码)
  2. 添加 key 或您在 KeyStore 中存储的任何内容
  3. 转到“设置”>“安全”并将“屏幕锁定”更改为“不是安全”,例如 Slide。
  4. 重新启动您的设备。

设备启动后,KeyStore 将被锁定。 com.android.credentials.UNLOCK intent 将启动 com.android.settings.CredentialStorage activity,这反过来会显示 UnlockDialog,提示获取密码。

 * KeyStore: LOCKED
* KeyGuard: OFF/ON
* Action: old unlock dialog
* Notes: assume old password, need to use it to unlock.
* if unlock, ensure key guard before install.
* if reset, treat as UNINITALIZED/OFF

KeyStore 在 5 次尝试输入错误密码后重置。但重置 KeyStore 实际上并没有将其关闭或取消初始化。 KeyStore 保持锁定状态,取消初始化的唯一方法似乎是调用 com.android.credentials.RESET。但这将重置 KeyStore 和 KeyChain(用户安装的证书)。

如果您想静默重置 KeyStore 和 KeyChain,无需用户确认,您可以通过绑定(bind)到 IKeyChainService 并调用其 reset() 方法来实现.

但我不建议这样做。更好的解决方案可能是显示一些通知消息,要求用户手动设置屏幕锁定

关于Android android.credentials.UNLOCK 在没有密码的情况下初始化 keystore ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22666435/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com