0
KeyStore keyStore = KeyStore.getInstance("AndroidKeyStore");
keyStore.load(null);
KeyStore.Entry entry = keyStore.getEntry("ECKey", null);
PrivateKey privateKey = ((KeyStore.PrivateKeyEntry) entry).getPrivateKey();
PublicKey publicKey = keyStore.getCertificate("ECKey").getPublicKey();

Log.d(TAG, "Private:" + privateKey.getEncoded());

此代码返回编码的私钥“null”。提取密钥的方法是什么。

4

1 回答 1

0

不可能。这就是 AndroidKeyStore 的目的。无法提取其中创建的密钥,这意味着即使是破坏 Android 操作系统的攻击者也无法泄露密钥材料。

如果您想拥有可以导出的私钥,您应该在 AndroidKeyStore 之外创建密钥,保存私钥的副本,然后将其导入。Keystore 将保护导入的副本。确保不要泄露您持有的副本(这实际上非常困难)。

于 2019-08-24T02:49:18.217 回答