3

我正在使用 SpongyCastle(BouncyCastle 的 Android 加密功能的完整实现),我有一个包含大小为 384 的密钥的 bks。我正在尝试使用 KeyStore.getKey(alias, password) 方法提取该密钥,就像你会密钥库中的任何密钥。但我遇到的是错误

java.security.UnrecoverableKeyException: no match.

做一些研究表明,这可能是因为密钥大小对于 Android 来说太大而无法处理,这是有道理的,因为我的程序获取大小为 128 和 256 的其他密钥没有问题。通常在 Java 中,这可以通过将“Unlimited Strength”JCE 导入 Java 安全文件夹来解决,但是 android 呢?我可以将无限强度的 JCE 导入到 android 中吗(我的直觉是没有)如果没有,关于如何提取密钥有什么建议吗?SpongyCastle 解决了我的许多其他问题,我希望这里也有 SpongyCastle 解决方案。

谢谢!

4

1 回答 1

8

所以经过一番折腾,我发现了问题所在。

我没有指定提供者,所以我的程序默认为默认的 Android BouncyCastle。我做的那一刻

KeyStore ks = new KeyStore("BKS","SC");

KeyStore ks = new KeyStore("BKS");

它工作得很好,没有抱怨。

于 2011-09-06T14:43:42.337 回答