Was ist der beste Weg, um Daten (z. B. Passwörter) zu speichern, die der Benutzer nicht manipulieren oder sehen kann? NSUserDefaults
werden in einer Datei auf dem Mac gespeichert, die der Benutzer manipulieren und sehen kann. Wie wäre es mit Core Data
? Wird dies auch in einer Datei gespeichert oder gibt es eine Möglichkeit, dass der Benutzer die Core Data
sehen kann?Core Data oder NSUserDefaults, um Manipulationen des Benutzers zu vermeiden?
Antwort
NSUserDefaults sollte definitiv nicht zum Speichern von Passwörtern verwendet werden, da es im Klartext gespeichert ist. Core-Daten können verschlüsselt werden, sind jedoch standardmäßig nicht verfügbar. Es speichert alle seine Daten in einer SQLite-Datenbank, die wirklich leicht zu lesen ist. Passwörter sollten im System Schlüsselbund gespeichert werden. Auf den Schlüsselbund kann mit der Security Framework zugegriffen werden.
Es gibt mehrere Bibliotheken, die die Verwendung des Schlüsselbunds erleichtern, zB: Locksmith oder Valet.
Neben dem Vorschlag von @esthepiking, Schlüsselbund zu verwenden, sollten Sie sich bewusst sein, dass die Implementierung Ihrer eigenen Verschlüsselung zum Speichern von Kennwörtern zu mehr Verpflichtungen unter den "Export Compliance" -Anforderungen des App Stores führen kann. Siehe hierzu post.
können Sie diese link siehe das Beispiel bekommen ios verwenden Keychain Dienstleistungen zu speichern und den Benutzernamen und das Passwort abrufen sicher
- 1. Core Data vs NSUserDefaults für eingeloggte Benutzerdaten
- 2. Wann gehört der Anwendungsstatus in Core Data statt in NSUserDefaults?
- 3. Benutzereigenschaft des angemeldeten Benutzers in .NET Core
- 4. Sicherung .sqlite (Core Data)
- 5. Fallen, um aktuellen Benutzer in Core Data zu speichern
- 6. Implementieren von Core Data zu watchOS 2.0
- 7. Core Data synchronisierbar & com.apple.syncservices.Syncable
- 8. Generic Core Data "Attachable" Elternklasse
- 9. Core Data und Multithreading
- 10. Core Data Relationship Fault
- 11. Core Data Abrufanforderung Optimierung
- 12. Core Data crash - Unbekannter Selektor
- 13. Was ist der richtige Weg, um ein Zeitintervall in Core Data zu speichern?
- 14. Weird Core Data Bug
- 15. UITableView Core Data Nachbestellung
- 16. UIManagedDocument und Core Data
- 17. Einfachster Weg, um den aktuellen Standort des Benutzers zu erhalten
- 18. Core Data - NSManagedObject Rückgabe
- 19. Methode, um einen Screenshot des Browsers des Benutzers zu erfassen, um die Fehlerberichterstattung zu unterstützen
- 20. NSDictionary und Core Data
- 21. Core Data Fault
- 22. Beziehungsfehler in Core Data
- 23. Core Data EXC_BAD_ACCESS
- 24. Adressbuch Kontakte in Core Data
- 25. Core Data Entity umbenennen
- 26. Core Data mit JSON
- 27. Beschleunigen Core Data holen
- 28. Core Data NSFetchRequest Problem
- 29. Spring Data REST-Filterung Daten auf der Grundlage des Benutzers
- 30. Core Data scheint nicht Daten zu speichern
den Schlüsselbund verwenden - https://developer.apple.com/library/mac/documentation/ Sicherheit/Konzeptionelle/keychainServConcepts/iPhoneTasks/iPhoneTasks.html – pds
Ja, Kern-Dateien können leicht zugegriffen werden. Die beste Lösung besteht darin, die Daten zu verschlüsseln, die Sie benötigen. –
gibt es ein großes Wrapper für den Schlüsselbund https://cocoapods.org/pods/SSKeychain – markedwardmurray