如何在android keystore中设置密码输入密码

时间:2017-03-12 14:13:57

标签: android keystore

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

1 个答案:

答案 0 :(得分:2)

无法使用密码保护

Android KeyStore

使用移动设备,请求和其他密码不是用户友好的。可以保护密钥,要求用户在使用密钥之前解锁设备。然后只有设备的所有者才能使用它,因为他/她已经配置了PIN /模式甚至指纹。您需要额外的保护级别,然后您可以定义某些密钥只能与指纹认证一起使用

  

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

例如:

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();

如果您指的是保护您的密钥不被其他应用程序使用(在您的问题中不明确),请不要担心,Android密钥只能由创建它们的应用程序使用