1) Мне интересно, если Android SDK уже предопределил функции шифрования, или если бы все это нужно было написать с нуля?
2) Предположим, что у вас есть классы для шифрования, написанные самим или предоставленные SDK, как убедиться, что содержимое ОЗУ (содержащее ключ в открытом тексте) никогда не записывается в постоянное хранилище Android-устройство? Я предполагаю, что если используется слишком много ОЗУ, есть какая-то замена, кроме того есть такие методы, как HTC fastboot, которые пишут весь контент в хранилище, если я не ошибаюсь? Любая возможность предотвратить сохранение содержимого ОЗУ для вашего программного обеспечения на постоянном хранилище? Или может быть какое-то событие до того, как содержимое ОЗУ будет записано в постоянное хранилище, так что до этого можно было бы стереть ключ?
Спасибо вам за любой намек!
1) Мне интересно, если Android SDK уже предопределено шифрование функций, или если пишите все это с нуля?
Вы можете сделать это с помощью Java Cryptography Architecture (JCA). В основном это пакет javax.crypto.*
. Вот справочное руководство JCA.
Кроме того, этот пример может быть полезен.
Что касается второго вопроса - мне просто нечего сказать. Единственная идея состоит в том, чтобы долго не держать дескриптор объектов. Создавайте для каждой потребности, используйте и аннулируйте ее, как только она будет использована. Никогда не ставьте статический контекст.