Câu hỏi phỏng vấn IOS
Câu hỏi

Lập trình iOS yêu cầu bảo mật dữ liệu cá...

Câu trả lời

markdown Copy
Để bảo mật dữ liệu cá nhân trong lập trình iOS, **Keychain** được sử dụng do khả năng lưu trữ an toàn và dễ truy cập. 

**Keychain** là một mảng lưu trữ của hệ thống, giúp lưu trữ các dữ liệu nhạy cảm như mật khẩu, token theo cách mà ứng dụng khác không thể truy cập. Keychain có khả năng mã hóa nhằm bảo vệ dữ liệu ngay cả khi thiết bị bị mất cắp.

Bạn có thể lưu dữ liệu vào **Keychain** thông qua các API của **Keychain Services** có sẵn trong framework `Security`. Các dữ liệu này sẽ được mã hóa và chỉ có thể được truy cập bởi chính ứng dụng đã lưu chúng. Việc lưu và lấy dữ liệu từ **Keychain** nên được thực hiện trong Main Queue để tránh bất kỳ lỗi nào liên quan đến threading.

Dưới đây là cách sử dụng cơ bản:

```swift
import Security

// Thêm dữ liệu vào Keychain
func addItem(service: String, account: String, data: Data) -> OSStatus {
    let query: [String: Any] = [kSecClass as String: kSecClassGenericPassword,
                                kSecAttrService as String: service,
                                kSecAttrAccount as String: account,
                                kSecValueData as String: data]
    return SecItemAdd(query as CFDictionary, nil)
}

// Lấy dữ liệu từ Keychain
func getItem(service: String, account: String) -> Data? {
    let query: [String: Any] = ...
senior

senior

Gợi ý câu hỏi phỏng vấn

senior

Khi lập trình iOS, làm sao để xử lý liên tục các release version một cách ổn định (CI/CD)?

middle

Bạn dùng AutoLayout trong lập trình iOS như thế nào để tạo giao diện responsive?

senior

Làm sao để phát hiện và giảm crash rate trong app iOS ở production?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào