W mojej aplikacji na iPhone znajdują się poufne dane, takie jak nazwa użytkownika, hasło i niektóre adresy URL do usługi internetowej. Który z nich jest lepszy NSUserdefaults lub pęku kluczy. Ktoś mówi, że NSUserdefaults jest niepewny. Dlaczego jest niepewny? i czy ktoś może dać plusy i minusy każdego z nich.NSUserDefaults lub keychain lepiej jest zapisać nazwę użytkownika i hasło w aplikacji na iPhone'a
Odpowiedz
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 !!
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.
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!
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.
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).
- 1. Jak zapisać nazwę użytkownika i hasło w git
- 2. Magit zapisz hasło i nazwę użytkownika
- 3. Jak przechowywać nazwę użytkownika/hasło w Mac Keychain za pomocą Java?
- 4. Jak ustawić nazwę użytkownika i hasło phpmyadmin
- 5. Android - Gdzie powinniśmy zapisać nazwę użytkownika i hasło w pamięci urządzenia?
- 6. Jak zapisać ustawienia użytkownika (nazwa użytkownika, hasło) w aplikacji Windows dla bieżącego zalogowanego użytkownika
- 7. Jak ustawić nazwę użytkownika/hasło mosquitto?
- 8. Wyklucz nazwę użytkownika lub hasło z UserChangeForm w Django Auth
- 9. jak ustawić nazwę użytkownika/hasło w HttpGet
- 10. Jak zrobić Egit zapamiętać hasło i nazwę użytkownika?
- 11. sprawdź nazwę użytkownika i hasło unix w skoroszycie
- 12. WCFTestClient - jak mogę dodać nazwę użytkownika i hasło?
- 13. Jak przekazać nazwę użytkownika i hasło w TeamCity REST API
- 14. sprawdź nazwę użytkownika i hasło w bazie danych (dołączono scenariusz)
- 15. iOS - Nie można zapisać NSDate w NSUserDefaults
- 16. Przechowywanie tokenów uwierzytelniania w systemie iOS - NSUserDefaults vs Keychain?
- 17. Jak dodać nazwę użytkownika i hasło do połączenia Rethinkdb?
- 18. Jak określić nazwę użytkownika i hasło po naciśnięciu przycisku dokowania?
- 19. WCF TransportCredentialOnly nie wysyłając nazwę użytkownika i hasło
- 20. Jak zapisać UIColor z NSUserDefaults?
- 21. Python obsługujący nazwę użytkownika i hasło dla adresu URL
- 22. Jak sprawdzić nazwę użytkownika i hasło do maszyny wirtualnej Azure?
- 23. Jak zapisać kolor w NSUserDefaults w szybkim?
- 24. Nazwa użytkownika i hasło Jenkins na Openshift
- 25. Gdzie zapisać stan w aplikacji na iPhone'a
- 26. Git Push - nazwa użytkownika i hasło na zdalnym adresie URL
- 27. Jak zapisać preferencje użytkownika w mojej aplikacji na iPhone'a?
- 28. Integracja OpenSSL i Apple Keychain
- 29. GitLab wyłącza zwykłą nazwę użytkownika Hasło logowania i zezwól na logowanie do OmniAuth
- 30. Biorąc pod uwagę nazwę użytkownika i hasło, w jaki sposób podszywać się pod tego użytkownika?
* 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