Я пытаюсь создать приложение для Android, который использует шифрование для сохранения пользовательской информации, и я не могу выяснить то, что я делаю неправильно. Я пытаюсь создать экземпляр SecretKeyFactory с помощью алгоритма "PBKDF2WithHmacSHA1", но приложение продолжает выдавать исключения в той точке в программе (не имеет значения, если это находится в эмуляторе или на реальных аппаратных средствах).
Код:
SecretKeyFactory secretFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
Исключение:
java.security. NoSuchAlgorithmException: реализация SecretKeyFactory PBKDF2WithHmacSHA1, не найденная...
Вот странная вещь..., если я беру этот код и компилирую его как обычное JAVA-приложение, он работает..., никакие исключения не выдаются, и я могу создать зашифрованные файлы (и дешифровать их) без ошибок.
Я также попытался ввести другие алгоритмы (например, AES, PBEWithHmacSHA1AndDESede, PBEWithMD5AndDES, и т.д.), и они все производят ту же ошибку/исключение в той строке в коде (при компиляции для Android).
У меня есть последняя версия установленного Java (JDK 1.6.0.18), все обновления относились к Eclipse и плагинам и последней версии SDK Android. Я также запускаю 64-разрядный Windows 7.
Помогите, я не нашел ответ на это за два дня интернет-поиска.Спасибо.
Это может быть просто неподдерживаемый алгоритм или его название на Android.
Вы ознакомились с классами javax.crypto? https://developer.android.com/reference/javax/crypto/EncryptedPrivateKeyInfo.html
Вот пример, использующий другой алгоритм, если это помогает. http://www.anddev.org/viewtopic.php?p=11737
кстати, добавьте к этому сообщению тег "from-irc", чтобы получить Google ответ. http://android-developers.blogspot.com/2010/01/irc-offce-hours-update.html
Это означает в Android SDK нет реализации этого алгоритма. У вас есть два варианта: