2012-09-21 4 views

Antwort

15

NSUserDefaults ist relativ einfach zu verwenden und speichert nur einen Wert pro Taste. Aber anscheinend ist es keine sehr sichere Methode, da es keine Verschlüsselung gibt.

Aber das Schlüsselbund ist sicher, obwohl es ein bisschen schwer zu programmieren ist. Sie können auf diesen Link verweisen, um den Zugriff auf Schlüsselbunde zu verwenden.

http://log.scifihifi.com/post/55837387/simple-iphone-keychain-code

Sie auch diese Bibliothek deviced von Simon Sie

https://github.com/goosoftware/GSKeychain

Ich hoffe, es hilft können !!

6

Alles, was in NSUserDefaults gespeichert ist, kann (relativ) einfach geöffnet und gelesen werden, egal ob auf dem Gerät oder in einem (unverschlüsselten) Backup auf iCloud oder auf einem synchronisierten Mac.

Keychain, on the other hand, is meant for stuff like certificates and passwords. Ich habe einen Artikel mit dem Titel "Wie man keine Passwörter in iOS speichert" verlinkt, der ein bisschen nützlicheres Detail gibt.

0

Keychain ist viel bessere Lösung, weil es sicherer ist, aber sowieso, wenn Sie diese Art von Informationen in den NSUserDefaults speichern würden, würden sich Ihre Benutzer nicht anders fühlen. Wenn jemand sein Gerät hacken würde, könnten sie Informationen von Keychain erhalten, genauso wie sie Informationen von UserDefaults erhalten würden. Diese Frage der Sicherheit ist also Rhetorik. Wie auch immer, der gute Programmierstil besteht darin, diese Daten in den Schlüsselbund zu speichern!

0

Ich würde Ihnen empfehlen, Schlüsselanhänger zu verwenden. Mit Keychain können Sie Ihr Passwort in verschlüsselter Form speichern. Werfen Sie einen Blick auf Apples GenericKeychain Beispiel.

NSUserDefaults ist im Vergleich zu Keychain etwas weniger sicher. In NSUserDefaults kann auf Daten leicht zugegriffen werden, wenn der spezifische Schlüssel bekannt ist. Dies ist bei Keychain nicht der Fall.

Sie können NSUserDefaults auch in Schlüsselbunde konvertieren. Werfen Sie einen Blickhere.

+0

* In NSUserDefaults kann auf Daten leicht zugegriffen werden, wenn der spezifische Schlüssel bekannt ist. Dies ist in Keychain * nicht der Fall. Was meinst du damit? – Honey

10

Es kann nützlich sein zu beachten, dass Schlüsselbunddaten auch dann beibehalten werden, wenn Ihre App gelöscht wird. NSUserDefaults-Daten gehen jedoch mit der App verloren (NSUserDefaults ist Teil der App-Sandbox, Keychain ist ein appunabhängiger Dienst).

Verwandte Themen