sql >> Database teknologi >  >> RDS >> SQLite

Bedste mulighed for at gemme brugernavn og adgangskode i Android-appen

Ja, det er svært på Android. Du ønsker ikke at gemme plaintext-adgangskoden i præferencerne, fordi enhver med en rodfæstet enhed grundlæggende vil vise deres adgangskode til verden. På bagsiden kan du ikke bruge en krypteret adgangskode, fordi du bliver nødt til at gemme din krypterings-/dekrypteringsnøgle et sted på enheden, igen modtagelig for rodangrebet.

En løsning, jeg brugte for et stykke tid tilbage, er at få serveren til at generere en "billet", som den sender tilbage til enheden, hvilket er godt i en vis periode. Denne billet bruges af enheden til al kommunikation, og bruger selvfølgelig SSL, så folk ikke kan stjæle din billet. På denne måde godkender brugeren sin adgangskode på serveren én gang, serveren sender en udløbende billet tilbage, og adgangskoden gemmes aldrig nogen steder på enheden.

Adskillige trebenede godkendelsesmekanismer, såsom OpenID, Facebook, endda Google API'er, bruger denne mekanisme. Ulemperne er, at en gang imellem, når billetten udløber, skal brugeren logge på igen.

I sidste ende afhænger det af, hvor sikker du ønsker din ansøgning skal være. Hvis dette blot er for at skelne brugere, og der ikke gemmes superhemmelige oplysninger som bankkonti eller blodtyper, så er det måske fint at gemme PWD'en i klartekst på enheden :)

Held og lykke, uanset hvilken metode du beslutter dig for, er den bedst til netop din situation!

Edit:Jeg skal bemærke, at denne teknik overfører ansvaret for sikkerheden til serveren - du vil bruge saltede hashes til sammenligning af adgangskoder på serveren, en idé du vil se i nogle af de andre kommentarer til dette spørgsmål. Dette forhindrer klartekstadgangskoden i at blive vist andre steder end EditText View på enheden, SSL-kommunikationen til serveren og serverens RAM, mens den salter og hashes adgangskoden. Det er aldrig gemt på disk, hvilket er en god ting™.



  1. Brug af TUPLES til at sætte mere end 1000 indgange i SQL IN-sætning

  2. Sådan sender du e-mail ved hjælp af Oracle 10 g Forms

  3. T-SQL-fejl, faldgruber og bedste praksis – determinisme

  4. Chen Notation