2012-09-21 7 views

Odpowiedz

15

NSUserDefaults jest dość łatwy w użyciu i przechowuje jedną wartość tylko na klucz. Ale najwyraźniej nie jest to bardzo bezpieczna metoda, ponieważ nie ma szyfrowania.

Ale Keychain jest bezpieczny, chociaż trochę trudno go zakodować. Możesz przekierować ten link, aby uzyskać dostęp do pęku kluczy.

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

można również korzystać z tej biblioteki deviced przez Szymona

https://github.com/goosoftware/GSKeychain

Mam nadzieję, że to pomaga !!

6

Wszystko, co jest przechowywane w NSUserDefaults, można (względnie) łatwo otworzyć i odczytać, czy to na urządzeniu, czy w postaci (niezaszyfrowanej) kopii zapasowej do iCloud lub zsynchronizowanego komputera Mac.

Keychain, on the other hand, is meant for stuff like certificates and passwords. Połączyłem artykuł zatytułowany "Jak nie przechowywać haseł w iOS", który zawiera trochę więcej przydatnych szczegółów.

0

Brelok jest o wiele lepszym rozwiązaniem, ponieważ jest bezpieczniejszy, ale w każdym razie, gdybyś zapisał tego rodzaju informacje w NSUserDefaults, twoi użytkownicy nie poczuliby się inaczej. Gdyby ktoś zhakował swoje urządzenie, mógłby uzyskać informacje z Keychain, tak samo jak dostaną informacje z UserDefaults. Tak więc kwestia bezpieczeństwa to retoryka. W każdym razie dobrym stylem programowania jest zapisanie tych danych w pęku kluczy!

0

Polecam Ci używać Breloki. Za pomocą pęku kluczy możesz zapisać swoje hasło w postaci zaszyfrowanej. Zobacz przykład Apple'a GenericKeychain.

NSUserDefaults jest trochę mniej bezpieczny w porównaniu z Keychain. W NSUserDefaults można uzyskać dostęp do danych, jeśli określony klucz jest znany. Tak nie jest w Keychain.

Możesz również przekonwertować NSUserDefaults na pęku kluczy. Spójrz nahere.

+0

* W danych NSUserDefaults można uzyskać do nich łatwy dostęp, jeśli określony klucz jest znany. Tak nie jest w Keychain *. Co przez to rozumiesz? – Honey

10

Warto zauważyć, że dane z pęku kluczy zostaną utracone, nawet jeśli aplikacja zostanie usunięta, ale dane NSUserDefault znikną wraz z aplikacją (NSUserDefaults jest częścią obszaru izolowanego aplikacji, Keychain jest usługą niezależną od aplikacji).

Powiązane problemy