Разница между Keychain и NSUserDefault?

Я новичок в objective C, я создал одно приложение, в котором я использовал NSUserDefault и Keychain для хранения имени пользователя и пароля. Но я не могу отличить их обоих. Пожалуйста, помогите дифференцировать оба.

Спасибо.

Ответ 1

A keychain - это зашифрованный контейнер, который содержит пароли для нескольких приложений и защищенных сервисов. Apple Inc. использует брелки в качестве системы управления паролями в Mac OS и iOS.

NSUserDefaults Предоставляет способ настройки поведения приложения на основе пользовательских настроек. Принадлежит к Foundation Foundation для Cocoa и Cocoa Touch.

Я получил это из информации тега NSUserdefaults и keychain

Ответ 2

Дополнение:  Когда мы сохранили имя пользователя и пароль. и Удалить приложение с устройства.

В Keychain: UserName и Password все еще есть.

В NSUserDefaults: UserName и Password также удаляются с устройства с вашим приложением.

Ответ 3

Старайтесь избегать локального сохранения данных в максимально возможной степени.

Связка ключей - связка ключей - это безопасный и зашифрованный способ сохранения небольших данных хранилища, таких как имя пользователя, пароль и т.д. Остерегайтесь данных цепочки для ключей, доступных с взломанных устройств. Вы можете получить образец кода Apple здесь.

Совместное использование цепочки для ключей - включение совместного использования цепочки для ключей позволяет вашему приложению обмениваться паролями в цепочке для ключей с другими приложениями, разработанными вашей командой. Предположим, мы создали два приложения, в которых пользователи могут войти в одну учетную запись. Было бы неплохо иметь возможность делиться информацией для входа между этими приложениями. Таким образом, пользователю нужно будет войти в систему только один раз в одном из приложений.

UserDefaults Интерфейс для пользовательской базы данных по умолчанию, где вы постоянно храните пары ключ-значение при вызовах вашего приложения на данном устройстве. UserDefaults не является безопасным способом сохранения личных данных. UserDefaults хранятся в виде plist локально, каждый может отслеживать. /Library/Preferences/com.mycompany.MyAppName.plist