Задача состоит в том, чтобы сохранить введенный пароль (PasswordStr) или mKey.getEncoded байт [], а затем автоматически отправлять в Crypto API (Cipher)Как безопасно хранить пароли на Android?
SecretKey mKey = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1").generateSecret(new PBEKeySpec(PasswordStr.toCharArray());
Ясно, что этот пароль может также быть зашифрован, но для этого потребуется другой пароль и так далее до бесконечности.
Может быть, у Android уже есть механизм для хранения паролей?
р.с использование удаленный сервер невозможно. Необходимо хранить локально.
Каков ваш прецедент? Зачем вам нужно хранить пароль или ключ? В настоящее время неясно, хотите ли вы сохранить пароль или ключ. Учитывая выбор, сохраните сгенерированный * ключ * (и общественную соль, конечно). Вы не хотите терять пароль пользователя другим сторонам! –
Было бы идеально хранить строковый пароль. Но, учитывая уязвимость кода Java, в принципе это не имеет значения. Я хочу, чтобы мои пользователи были защищены своими данными. Соль, итерация и т. Д. Можно увидеть после декомпиляции. – Mixer
Теперь это даже не имеет смысла. Соль не должна быть в коде, соль должна быть случайной, а не [такой случайный] (http://xkcd.com/221/). Соль и количество итераций могут быть общедоступными. –