如何在android密钥库中设置带有密码的密钥条目

S.R*_*ath 5 android keystore

我已经使用 生成了密钥对KeyPairGenerator。如何为我的私钥设置密码,以便知道密码的人只能访问私钥。

ped*_*ofb 4

Android KeyStore无法使用密码进行保护。

使用移动设备请求和附加密码对用户来说并不友好。可以保护密钥,要求用户在使用密钥之前解锁设备。然后,只有设备的所有者才能使用它,因为他/她已经配置了 PIN/图案甚至指纹。如果您需要额外的保护级别,那么您可以定义某些密钥只能与指纹身份验证一起使用

Android 密钥库系统允许您将加密密钥存储在容器中,从而更难以从设备中提取密钥。一旦密钥位于密钥库中,它们就可以用于加密操作,而密钥材料仍然不可导出。此外,它还提供了限制何时以及如何使用密钥的设施,例如要求对密钥使用进行用户身份验证或限制密钥仅在某些加密模式下使用

例如:

KeyPairGenerator kpg = KeyPairGenerator.getInstance(
            KeyProperties.KEY_ALGORITHM_RSA, "AndroidKeyStore");

kpg.initialize(new KeyGenParameterSpec.Builder(
            alias,
            KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
            .setDigests(KeyProperties.DIGEST_SHA256, KeyProperties.DIGEST_SHA512)
            .setKeySize(keySize)
            .setUserAuthenticationRequired()
            .build());

 KeyPair keyPair = kpg.generateKeyPair();
Run Code Online (Sandbox Code Playgroud)

如果您指的是保护您的密钥不被其他应用程序使用(您的问题不清楚),那么不用担心,Android 密钥只能由创建它们的应用程序使用