Heim  >  Artikel  >  Wie speichere ich Schlüssel im AndroidKeyStore sicher mit einem Passwort?

Wie speichere ich Schlüssel im AndroidKeyStore sicher mit einem Passwort?

WBOY
WBOYnach vorne
2024-02-10 19:15:08490Durchsuche

Der

php-Editor Baicao bietet Ihnen eine Anleitung zum sicheren Speichern von Schlüsseln im AndroidKeyStore mithilfe von Passwörtern. Bei der Entwicklung mobiler Apps ist der Schutz der Sicherheit Ihrer Schlüssel von entscheidender Bedeutung. AndroidKeyStore bietet eine zuverlässige Möglichkeit zum Speichern von Schlüsseln, um sicherzustellen, dass sie nicht von böswilligen Anwendungen oder Angreifern abgerufen werden können. In dieser Anleitung wird erklärt, wie Sie mit einem Passwort einen Schlüssel verschlüsseln und ihn sicher im AndroidKeyStore speichern, um ein Höchstmaß an Sicherheit zu gewährleisten. Egal, ob Sie ein Neuling oder ein erfahrener Entwickler sind, Sie können dieser Schritt-für-Schritt-Anleitung leicht folgen, um dieses Ziel zu erreichen. Lasst uns beginnen!

Frageninhalt

Ich versuche, eine Anwendung zu erstellen, die es Benutzern ermöglicht, Passwörter zu speichern. Jetzt erlaube ich Benutzern, ihre Passwörter auf zwei Arten zu verschlüsseln: Die erste ist biometrisch und die andere ist ein Passwort

Ich konnte das Passwort autorisieren, indem ich den Schlüssel im AndroidKeyStore erstellte und beim Erstellen des Schlüssels setUsetAuthenticationRequired(true) 来实现 biometrics die Verschlüsselung einstellte und dann den BiometricsManager verwendete.

Allerdings bin ich mir nicht sicher, wie ich Passwort eins umsetzen soll. Ich habe versucht, nach PBE-Verschlüsselung zu suchen, aber die Android-Dokumentation enthält nicht viel. Was ist die sicherste und beste Lösung für diese Situation? Wenn es Links dazu gibt, wäre ich dankbar :)

(Hinweis: Wenn ich PBE-Verschlüsselung verwende und die verschlüsselten Daten (mehrere Benutzernamen und Passwörter) in RoomDB speichere, wie kann ich das tun? Ich überprüfe beim nächsten Start der App, ob das Passwort korrekt ist und ob in der Datenbank nichts zum Entschlüsseln und Testen vorhanden ist)

Ich habe auch eine Möglichkeit gefunden, einen Schlüssel zu erstellen, den Schlüssel dann als Eintrag zu speichern und https://developer.android.com/reference/java/security/KeyStore.PasswordProtection zu verwenden, um den Eintrag zu schützen. Lassen Sie mich wissen, ob dies eine ausreichend sichere Lösung ist oder ob es eine bessere Lösung gibt.

Danke!

Workaround

Wenn Sie Passwörter in Room speichern möchten, müssen Sie eine Hash-Funktion ausführen und dann den Hash des Passworts speichern. Egal wie lang Ihr Passwort ist, der Hashwert hat eine feste Größe.

Um das eingegebene Passwort mit dem in der Datenbank gespeicherten Passwort zu vergleichen, hashen Sie die Eingabe und vergleichen sie mit dem in der Datenbank gespeicherten Hash-Wert. Denn wenn Sie eine Hash-Funktion auf dieselbe Zeichenfolge anwenden, erhalten Sie dasselbe Ergebnis. Wenn mindestens ein Symbol falsch ist, ist der generierte Hash völlig anders.

Sie können dies überprüfen und den PBKDF2-Algorithmus verwenden. Weitere Einzelheiten dazu, wie Sie eine Hash-Funktion auswählen und was Sie nicht verwenden sollten, finden Sie hier

Das obige ist der detaillierte Inhalt vonWie speichere ich Schlüssel im AndroidKeyStore sicher mit einem Passwort?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen