Безопасный для ввода пароля в мобильном приложении

У меня есть веб-сервер, который создает QR-код, который [имя_пользователя] + хэш-адрес md5 [имя_пользователя] [пароль]. Где [имя_пользователя] пользователь вошел в систему в то время. Где [пароль] – системный пароль, установленный мной и общий для веб-сервера и приложений.

Приложение Android / iPhone / BlackBerry / Windows сканирует этот QR-код и использует [username], указанный в QR-коде, для хэша с [паролем], который скажет мне, что QR-код пришел с моего сервера.

Очевидно, что если кто-то заполучил [пароль], тогда они могли бы создавать QR-коды, которые не поступали с моего веб-сервера. Так или иначе, чтобы безопасно хранить [пароль] в моем приложении или кто-то может декомпилировать .apk и найти его в классах.dex?

Вы можете каким-то образом запутать пароль, но в конечном итоге это только безопасность через неясность. Кто-то, кто хотел, мог бы перестроить его.

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

Нет.

Если кто-то достаточно мотивирован, они смогут перепроектировать пароль с жестким кодом.

Я не уверен в других платформах, но если вы поместите свой пароль жестко закодированным в plaintext на андроиде, они получат его очень легко. На других платформах могут потребоваться более сложные методы. Вы можете хэшировать пароль с помощью более продвинутого алгоритма хэширования, чтобы они не получали исходный пароль, но из того, что вы сказали, вы не хотите, чтобы они делали «поддельные» QR-коды.

Короткий ответ – нет, потому что все может быть взломан каким-то образом, если оно находится на стороне клиента.

Intereting Posts
Публикация Google Play App с двумя разными именами разработчиков Планирование автономных задач, которые должны выполняться при подключении пользователя к Интернету GLSurfaceView внутри фрагмента не отображается при перезапуске Проверьте, есть ли у Android-устройства программные или аппаратные кнопки навигации Как узнать все открытые соединения базы данных с помощью зеленого DAO ..? Ручка Связать события onClick с собственными намерениями Как RecyclerView ItemTouchHelper блокирует салфетки? Создание приложения AndroidTV на FireTV Android: OnClickListener не отвечает на начальную загрузку? Показать прозрачную активность в Android? Открыть браузер с последним посещенным адресом ImageSpan на EditText (смайлики). С SwiftKey Keyboard не работает Невозможно импортировать ActionBarCompat из Android Support Library с помощью Android Studio Как использовать собственные приложения для Android и IOS WebGL? Android Wear Preview не подключается к Wear Emulator