1

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

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

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

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

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

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

+0

Я бы использовал хэш-код md5 или sha one way. – RamithDR

ответ

3

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

Чтобы сделать их нечитаемыми, вам просто нужно использовать хороший один-к-одному Hash-Function.

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

Для хранения значения:

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

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

// Pseudo 
SharedPrefs.get(USERNAME).equals(h(input_username)); 
+1

@Jurza Никогда не пишите свою собственную функцию хэша. Используйте SHA256 и т. Д. –

1

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

вы можете попробовать следующее: Hash String via SHA-256 in Java

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

+0

Можете ли вы объяснить, почему запрет пароля не подходит? – Jurza

+0

Если вы используете шифрование, любой может декомпилировать ваше приложение, увидеть свой пароль и расшифровать пароль своих пользователей, если вы используете хорошее хеширование + соль, почти невозможно получить пароль за один срок службы, взломать хешированный пароль занимает много лет даже с суперкомпьютером –

0

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

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