Получение массива символов от пользователя без использования строки

Я хочу получить строку пароля от пользователя на Android.

Я не хочу, чтобы эта строка сохранялась в Java String в любой момент процесса, начиная с момента, когда пользователь ее вводит, и заканчивая ее появлением в моем коде в виде символьного или байтового массива.

Причиной этого является запрет Sun на использование строк Java для конфиденциальных данных. «Объекты типа String являются неизменяемыми, т. е. не определены методы, позволяющие изменять (перезаписывать )или обнулять содержимое String после использования. Эта функция делает объекты String непригодными для хранения безопасности конфиденциальная информация, такая как пароли пользователей. Вместо этого вы всегда должны собирать и хранить конфиденциальную информацию в массиве символов». http://docs.oracle.com/javase/1.5.0/docs/guide/security/jce/JCERefGuide.html#PBEEx

Итак, я не могу использовать EditText, потому что он использует Strings внутри (, даже если он возвращает Editable, который мог бы поддерживаться char[] или Char[]? ).

Как проще всего принять массив символов от пользователя? Я предполагаю, что Canvas, на котором я слушаю ключевые события?

9
задан Peter vdL 1 May 2012 в 03:30
поделиться