2012-08-23 13 views
10

objective C için yeni, kullanıcı adı ve parolamı saklamak için hem NSUserDefault hem de Keychain kullanmış olduğum tek bir uygulama oluşturdum. Ama ikisini de ayırt edemiyorum. Her ikisini de ayırt etmek için lütfen yardım edin.Keychain ve NSUserDefault arasındaki fark nedir?

Teşekkür ederiz.

+0

Bu yalnızca anahtarlık anlayışınız BASİTLEŞTİREN için çok bariz yorumdur içinde izleyebilirsiniz plist olarak depolanır. Anahtarlık ve NSUserDefault ** ** çok benzer **. Her ikisi için de sadece bir şey yapın * bir objectforKey ayarlayın ve sonra bunu okumak için ObjectForKey yapın * Her ikisi de hashları saklar. Keychain ve NSUserDefault her ikisi de korumalı olacak, ancak uygulama kaldırılsa bile anahtarlık bellekten silinmeyecek. Bir dahaki sefere yine orada olacak. Ayrıca, birden çok cihazda çalışan iCloud için bir anahtarlık var, ancak bu farklı bir hikaye. – Honey

cevap

10

A Anahtarlık, birden fazla uygulama ve güvenli hizmet için parola tutan şifrelenmiş bir kapsayıcıdır. Apple Inc., Mac OS ve iOS'ta şifre yönetimi sistemi olarak anahtarlıklar kullanıyor.

NSUserDefaults Kullanıcı tercihlerine bağlı olarak uygulama davranışında özelleştirme için bir yol sağlar. Kakao ve Kakao Dokunuşu için Vakıf çerçevesine aittir.

Ben NSUserdefaults ve keychain

4

İlavesi Etiket Bilgiler bu var: biz Kullanıcı adı ve şifre kurtardığında. ve uygulamayı cihazdan kaldır.

Anahtarlık içinde: KullanıcıAdı ve Şifre hala var.

NSUserDefaults'ta: KullanıcıAdı ve Şifre ayrıca cihazınızdan uygulamanızla birlikte kaldırılır. Verileri olabildiğince yerel olarak kaydetmekten kaçınmaya çalışın.

1

Keychain - Anahtarlık kullanıcı adı, şifre vs. gibi küçük depolama verileri kaydetmek & şifreli yol güvenli Jailbreak yapılmış cihazlarda öğrenebileceğinden erişilebilir anahtarlık verileri sakının. Apple örnek kodunu here'dan edinebilirsiniz.

Keychain Sharing - anahtarlık paylaşımını etkinleştirme Uygulamanız ekip tarafından geliştirilen diğer uygulamalarla anahtarlıkta şifreleri paylaşmalarını sağlar. Kullanıcıların aynı hesaba giriş yapabileceği iki uygulama oluşturduğumuzu varsayın. Bu uygulamalar arasında giriş bilgilerini paylaşma becerisine sahip olmak güzel olurdu. Bu şekilde kullanıcının sadece uygulamalardan birinde bir defa giriş yapması yeterli olacaktır.

UserDefaults Eğer belli bir cihazda uygulamanızın çağrımı genelinde ısrarla anahtar-değer çiftlerini depolamak kullanıcının varsayılan veritabanına bir arayüz. UserDefaults, özel verileri kaydetmenin güvenli bir yolu değildir. UserDefaults lokal, Herkes ./Library/Preferences/com.mycompany.MyAppName.plist

İlgili konular