首页 > 解决方案 > 是否可以使用 Android Jetpack 创建具有不同参数的多个加密密钥?

问题描述

我决定使用 Android Jetpack 来提供可靠的加密操作。关于这一点,我有两个案例要介绍

  1. 可以使用生成的密钥加密的一些常规简单数据,无需额外保护
  2. 需要用生物识别技术额外保护的秘密

我将 1. 存储在 EncryptedPrefs 和 2. 在 EncryptedFile

目前,当我使用MasterKey.Builder和提供KeyGenParameterSpec. 对于 2. 我另外添加

setUserAuthenticationRequired(true)
setUserAuthenticationValidityDurationSeconds(30)

首先,我为常规文件构建密钥,然后为秘密构建密钥。

不幸的是,整个图书馆似乎只能使用一个 MasterKey。因此,即使在setUserAuthenticationValidityDurationSeconds首次创建密钥后调用它也不会改变任何内容。另一方面,当我首先为秘密创建密钥时,它工作正常。

当我查看代码时,似乎每个库都有一个主密钥——即使我在构建过程中尝试将别名更改为不同的,我也会从库中得到一个异常。最初我的想法是使用别名为每个文件创建一个密钥,但这似乎是不可能的。

是否可以使用 Jetpack 实现我的场景?

标签: androidandroid-jetpackandroid-jetpack-security

解决方案


推荐阅读