我正在使用 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 解决方案。
Thanks!
因此,经过一番思考后,我找到了问题所在。
我没有指定提供程序,因此我的程序默认使用默认的 Android BouncyCastle。我这么做的那一刻
KeyStore ks = new KeyStore("BKS","SC");
相对于
KeyStore ks = new KeyStore("BKS");
它工作得很好并且没有抱怨。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)