我正在使用 SpongyCaSTLe(BouncyCaSTLe 的 Android 加密功能的完整实现)并且我有一个包含大小为 384 的 key 的 bks。我正在尝试使用 KeyStore.getKey(alias, password) 方法提取该 key 就像 keystore 中的任何 key 一样。但是我遇到的是错误
java.security.UnrecoverableKeyException:不匹配
。
做一些研究表明,这可能是因为 key 大小太大,Android 无法处理,这是有道理的,因为我的程序获得大小为 128 和 256 的其他 key 没问题。通常在 Java 中,这可以通过将“Unlimited Strength”JCE 导入 Java 安全文件夹来解决,但是 android 呢?我可以将无限强度的 JCE 导入到 android 中吗(我的直觉是不能)如果不能,是否有关于如何提取 key 的任何建议? SpongyCaSTLe 解决了我的很多其他问题,我希望这里也有 SpongyCaSTLe 解决方案。
谢谢!
最佳答案
经过一番折腾,我终于找到了问题所在。
我没有指定提供商,所以我的程序默认使用默认的 Android BouncyCaSTLe。我做的那一刻
KeyStore ks = new KeyStore("BKS","SC");
相对于
KeyStore ks = new KeyStore("BKS");
它工作得很好,没有提示。
关于android - 无限力量 Jce和Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7258016/