我正在尝试为 Android 创建一个使用加密来保存用户信息的应用程序,但我不知道自己做错了什么。我正在尝试使用“PBKDF2WithHmacSHA1”算法创建 SecretKeyFactory 的实例,但应用程序在程序的那个点继续抛出异常(无论是在模拟器中还是在真实硬件上都无关紧要)。
代码:
SecretKeyFactory secretFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
异常(exception):
java.security.NoSuchAlgorithmException: SecretKeyFactory PBKDF2WithHmacSHA1 implementation not found ...
奇怪的是...如果我将此代码作为常规 Java 应用程序进行编译,它可以正常工作...不会抛出任何异常并且我可以创建加密文件(并解密它们)而不会出错。
我也尝试过输入其他算法(例如 AES、PBEWithHmacSHA1AndDESede、PBEWithMD5AndDES 等),它们都会在代码的那一行产生相同的错误/异常(为 Android 编译时)。
我安装了最新版本的 Java (JDK 1.6.0.18)、所有适用于 Eclipse 和插件的更新,以及最新版本的 Android SDK。我也在运行 Windows 7 64 位。
求助,网上找了两天也没有找到答案。 谢谢。
最佳答案
它可能只是不受支持的算法或它在 Android 上的命名。
您查看过 javax.crypto 类吗? https://developer.android.com/reference/javax/crypto/EncryptedPrivateKeyInfo.html
如果有帮助,这里是一个使用不同算法的示例。 http://www.anddev.org/viewtopic.php?p=11737
顺便说一句,在这篇文章中添加一个“from-irc”标签以获得谷歌的回应。 http://android-developers.blogspot.com/2010/01/irc-offce-hours-update.html
关于java - Android SecretKeyFactory 问题。未找到实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2256774/