sql >> Database >  >> RDS >> SQLite

Beste optie om gebruikersnaam en wachtwoord op te slaan in de Android-app

Ja, dit is lastig op Android. U wilt het wachtwoord in platte tekst niet opslaan in de voorkeuren, omdat iedereen met een geroot apparaat in principe zijn wachtwoord aan de wereld zal tonen. Aan de andere kant kun je geen gecodeerd wachtwoord gebruiken, omdat je je coderings-/decoderingssleutel ergens op het apparaat moet opslaan, opnieuw vatbaar voor de root-aanval.

Een oplossing die ik een tijdje terug heb gebruikt, is om de server een "ticket" te laten genereren dat hij teruggeeft aan het apparaat, wat goed is voor een bepaalde periode. Dit ticket wordt door het apparaat gebruikt voor alle communicatie, uiteraard met SSL, zodat mensen je ticket niet kunnen stelen. Op deze manier authenticeert de gebruiker zijn wachtwoord één keer op de server, stuurt de server een verlopen ticket terug en wordt het wachtwoord nooit ergens op het apparaat opgeslagen.

Verschillende drieledige authenticatiemechanismen, zoals OpenID, Facebook en zelfs Google API's, gebruiken dit mechanisme. De nadelen zijn dat de gebruiker af en toe, wanneer het ticket verloopt, opnieuw moet inloggen.

Uiteindelijk hangt het af van hoe veilig u wilt dat uw toepassing is. Als dit eenvoudig is om gebruikers te onderscheiden, en er wordt geen supergeheime informatie opgeslagen zoals bankrekeningen of bloedgroepen, dan is het misschien prima om de PWD in leesbare tekst op het apparaat op te slaan :)

Veel succes, welke methode je ook kiest, het is het beste voor jouw specifieke situatie!

Bewerken:ik moet er rekening mee houden dat deze techniek de verantwoordelijkheid voor de beveiliging overdraagt ​​aan de server - je zult gezouten hashes willen gebruiken voor het vergelijken van wachtwoorden op de server, een idee dat je in sommige van de andere opmerkingen over deze vraag zult zien. Dit voorkomt dat het leesbare wachtwoord overal verschijnt, behalve in de EditText-weergave op het apparaat, de SSL-communicatie met de server en het RAM-geheugen van de server, terwijl het wachtwoord wordt gezouten en gehasht. Het wordt nooit op schijf opgeslagen, wat een goede zaak™ is.



  1. Oracle Sequence beginnend met 2 in plaats van 1

  2. Rangschikkingsfuncties in SQL Server

  3. Hoe kan ik een gebruiker maken in de SQL Server Express-database die ik aan mijn project heb toegevoegd?

  4. Een back-up maken van MySQL-databases vanaf de opdrachtregel in Linux