Keychain API в iOS
Всем привет!
Не так давно столкнулся с необходимостью использования Keychain-а для обеспечения дополнительной защиты при входе в приложение.
Я нашел много хороших статей по этой теме, но в основном там описываются сторонние фреймворки, упрощающие жизнь, а было интересно посмотреть, как работать с API напрямую. В этой статье я попытался объединить документацию Apple с практикой на простом примере.
Keychain — зашифрованная база данных, куда сохраняются небольшие объемы пользовательской информации (см. документацию Apple).
Общая схема работы продемонстрирована на рисунке.
Keychain API Services в свои очередь являются часть фреймворка Security, но его рассмотрение требует отдельной статьи.
let keychainItemQuery = [ kSecValueData: pass.data(using: .utf8)!, kSecClass: kSecClassGenericPassword ] as CFDictionary let status = SecItemAdd(keychainItemQuery, nil) print("Operation finished with status: (status)")
Выше приведен пример сохранения пароля в Keychain. Читать дальше →
Не так давно столкнулся с необходимостью использования Keychain-а для обеспечения дополнительной защиты при входе в приложение.
Я нашел много хороших статей по этой теме, но в основном там описываются сторонние фреймворки, упрощающие жизнь, а было интересно посмотреть, как работать с API напрямую. В этой статье я попытался объединить документацию Apple с практикой на простом примере.
Начнем с небольших определений
Keychain — зашифрованная база данных, куда сохраняются небольшие объемы пользовательской информации (см. документацию Apple).
Общая схема работы продемонстрирована на рисунке.
Keychain API Services в свои очередь являются часть фреймворка Security, но его рассмотрение требует отдельной статьи.
Добавление элемента
let keychainItemQuery = [ kSecValueData: pass.data(using: .utf8)!, kSecClass: kSecClassGenericPassword ] as CFDictionary let status = SecItemAdd(keychainItemQuery, nil) print("Operation finished with status: (status)")
Выше приведен пример сохранения пароля в Keychain. Читать дальше →
Источник: Хабрахабр
Похожие новости
- Манифест созидателя
- OSINT для ленивых. Часть 8: GEOINT по фото за 3 минуты
- MarketingNews: Кейс: «Призы от всего атомного сердца». как «Пятёрочка» создала фиджитал-вселенную с Atomic Heart и переосмыслила механику промоакций
- Как я собрал себе C2 на малинке за один вечер
- Краткая история биометрии: как была изобретена идентификация по радужке глаза
- Мыслепреступление на Android: как скрыть Перехватчик трафика от Государственных приложений
- Хак сортировки новостей по цифровому коду (Плагин для DLE 13-19.1)
- Путаница в уязвимостях WSUS: ставим все на свои места
- Хостеры против VPN: что на самом деле скрывают поправки “Антифрод 2.0”
- Как я чуть не потерял свои скрипты из-за того, что РКН и Telegram не поделили IP-адреса