我决定使用 Android Jetpack 来提供可靠的加密操作。关于这一点,我有两个案例要介绍
- 可以使用生成的密钥加密的一些常规简单数据,无需额外保护
- 需要用生物识别技术额外保护的秘密
我将 1. 存储在 EncryptedPrefs 和 2. 在 EncryptedFile
目前,当我使用MasterKey.Builder
和提供KeyGenParameterSpec
. 对于 2. 我另外添加
setUserAuthenticationRequired(true)
setUserAuthenticationValidityDurationSeconds(30)
首先,我为常规文件构建密钥,然后为秘密构建密钥。
不幸的是,整个图书馆似乎只能使用一个 MasterKey。因此,即使在setUserAuthenticationValidityDurationSeconds
首次创建密钥后调用它也不会改变任何内容。另一方面,当我首先为秘密创建密钥时,它工作正常。
当我查看代码时,似乎每个库都有一个主密钥——即使我在构建过程中尝试将别名更改为不同的,我也会从库中得到一个异常。最初我的想法是使用别名为每个文件创建一个密钥,但这似乎是不可能的。
是否可以使用 Jetpack 实现我的场景?