2012-08-23 12 views
10

Jestem nowy w objective C, Stworzyłem jedną aplikację, w której użyłem zarówno NSUserDefault i Keychain do przechowywania mojej nazwy użytkownika i hasła. Ale nie mogę różnicować obu. Pomóż rozróżnić oba.Różnica między pękiem kluczy a NSUserDefault?

Dziękuję.

+0

To jest bardzo oczywiste komentarz tylko uprościć zrozumienie pęku kluczy. Keychain i NSUserDefault są ** bardzo podobne **. Dla obu po prostu zrobić coś jak * ustawić objectforKey, a następnie zrobić ObjectForKey, aby go przeczytać * Oboje przechowują hasze. Keychain i NSUserDefault będą zarówno piaskowane, ale keychain nie zostanie zwolniony z pamięci, nawet jeśli odinstalujesz aplikację. Będzie nadal tam podczas następnego razu. Istnieje również keychain dla iCloud, który działa na wielu urządzeniach, ale to już inna historia – Honey

Odpowiedz

10

A brelok to zaszyfrowany pojemnik, który przechowuje hasła do wielu aplikacji i bezpiecznych usług. Apple Inc. używa pęków kluczy jako systemu zarządzania hasłami w systemach Mac OS i iOS.

NSUserDefaults Umożliwia dostosowywanie zachowania aplikacji w zależności od preferencji użytkownika. Należy do ram Fundacji dla Cocoa i Cocoa Touch.

mam to od tagów Informacji NSUserdefaults i keychain

4

Dodawanie: Kiedy zapisana nazwa użytkownika i hasło. i Usuń aplikację z urządzenia.

W pęku kluczy: nazwa użytkownika i hasło nadal tam są.

W NSUserDefaults: nazwa użytkownika i hasło również usuwają z urządzenia wraz z aplikacją.

1

Staraj się unikać zapisywania danych lokalnie w największym możliwym stopniu.

Keychain - Brelok jest bezpieczny & zaszyfrowany sposób, aby zaoszczędzić małych przechowywania danych takich jak nazwa użytkownika, hasło itp Strzeż danych Brelok można dojechać z urządzeń jailbroken. Możesz pobrać przykładowy kod Apple z here.

Keychain Sharing - Włączanie udostępniania pęku kluczy umożliwia aplikacja do dzielenia haseł w pęku kluczy z innymi aplikacjami opracowanymi przez zespół. Załóżmy, że stworzyliśmy dwie aplikacje, w których użytkownicy mogą logować się na to samo konto. Byłoby miło mieć możliwość udostępniania danych logowania między tymi aplikacjami. W ten sposób użytkownik będzie musiał zalogować się tylko raz w jednej z aplikacji.

UserDefaults interfejs do bazy defaults użytkownika, gdzie można przechowywać par klucz-wartość uporczywie całej wywołań aplikacji na danym urządzeniu. UserDefaults nie są bezpiecznym sposobem zapisywania prywatnych danych. UserDefaults są przechowywane jako plist lokalnie, Każdy może śledzić w ./Library/Preferences/com.mycompany.MyAppName.plist