SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Najlepsza opcja do przechowywania nazwy użytkownika i hasła w aplikacji na Androida

Tak, jest to trudne na Androidzie. Nie chcesz przechowywać hasła w postaci zwykłego tekstu w preferencjach, ponieważ każdy, kto ma zrootowane urządzenie, będzie w zasadzie wyświetlał swoje hasło światu. Z drugiej strony nie możesz użyć zaszyfrowanego hasła, ponieważ musiałbyś przechowywać klucz szyfrowania/odszyfrowywania gdzieś na urządzeniu, ponownie podatnym na atak roota.

Jednym z rozwiązań, z którego korzystałem jakiś czas temu, jest wygenerowanie przez serwer „biletu”, który przekazuje z powrotem do urządzenia, co jest dobre przez określony czas. Ten bilet jest używany przez urządzenie do całej komunikacji, oczywiście przy użyciu protokołu SSL, więc ludzie nie mogą ukraść twojego biletu. W ten sposób użytkownik raz uwierzytelnia swoje hasło na serwerze, serwer odsyła wygasający bilet, a hasło nigdy nie jest przechowywane nigdzie na urządzeniu.

Kilka trzystopniowych mechanizmów uwierzytelniania, takich jak OpenID, Facebook, a nawet Google API, korzysta z tego mechanizmu. Wadą jest to, że co jakiś czas, gdy bilet wygaśnie, użytkownik musi się ponownie zalogować.

Ostatecznie zależy to od tego, jak bezpieczna ma być Twoja aplikacja. Jeśli ma to po prostu odróżnić użytkowników i nie są przechowywane żadne super tajne informacje, takie jak konta bankowe lub grupy krwi, być może zapisanie PWD w postaci zwykłego tekstu na urządzeniu jest w porządku :)

Powodzenia, niezależnie od wybranej metody, która będzie najlepsza w Twojej konkretnej sytuacji!

Edycja:Powinienem zauważyć, że ta technika przenosi odpowiedzialność za bezpieczeństwo na serwer - będziesz chciał używać solonych skrótów do porównywania haseł na serwerze, pomysł, który zobaczysz w niektórych innych komentarzach do tego pytania. Zapobiega to wyświetlaniu hasła w postaci zwykłego tekstu w dowolnym miejscu poza widokiem edycji tekstu na urządzeniu, komunikacją SSL z serwerem i pamięcią RAM serwera podczas solenia i mieszania hasła. Nigdy nie jest przechowywany na dysku, co jest dobrą rzeczą™.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można otworzyć bazy danych w trybie odczytu/zapisu

  2. Jak wyodrębnić dzień, miesiąc i rok z daty w SQLite?

  3. SQLite onUpgrade() frustracja

  4. Android- setPeriodic for JobScheduler nie działa

  5. jak zaimplementować dziedziczenie tabel w GreenDao