Я создаю приложение для Android, которое предназначено ровно для одного пользователя на установку. Приложение должно хранить имя пользователя и пароль.

После проверки введенные имя пользователя и пароль сохраняются в общих настройках, и их нужно вводить каждый раз при запуске приложения.

Поле имени пользователя: android:inputType="textCapSentences"

Поле пароля: android:inputType="textPassword"

Мой вопрос: какой наименее болезненный способ зашифровать / расшифровать оба значения.

Процесс шифрования не обязательно должен быть на высшем уровне, поскольку приложение предназначено для школьного проекта.

1
Jurza 3 Сен 2016 в 22:21

3 ответа

Лучший ответ

Нет необходимости шифровать / расшифровывать входные данные.

Чтобы сделать их нечитаемыми, вам просто нужно использовать подходящую хеш-функцию. .

Допустим, ваша хеш-функция - 'h':

Чтобы сохранить ваши значения:

// Pseudo
SharedPrefs.put(USERNAME, h(input_username));

Чтобы проверить свои ценности:

// Pseudo
SharedPrefs.get(USERNAME).equals(h(input_username));
3
Erik 3 Сен 2016 в 19:30

Никогда не шифруйте пароли, используйте хеши

Вы можете попробовать это: Хеш-строка через SHA-256 в Java

Сохраните хэш пароля в своей базе данных, когда пользователь входит в систему, хешируйте ввод, если хеш в вашей базе данных равен входному хешу, тогда вы знаете, что пользователь ввел правильный пароль

1
Community 23 Май 2017 в 12:08

Поскольку вы хотите зашифровать / расшифровать учетные данные (имя пользователя и пароль) каждый раз, когда пользователь запускает приложение. Я рекомендую вам использовать [Account Manager] [1]

[1]: https://developer.android.com/reference/android/accounts /AccountManager.html, который будет обрабатывать его, а также безопасно.

0
nilesh soni 3 Сен 2016 в 19:38