在用户默认值中保存包含编码为数据的敏感数据的对象
Saving object containing sensitive data encoded as Data in user defaults
我有一个包含个人识别码和密码等敏感数据的对象,它作为数据保存在用户默认设置中。
将对象保存为用户默认值中的数据是一个安全的决定,还是将用户对象保存在钥匙串中会更好?
所有敏感信息都必须保留在钥匙串中,任何试图调试您的应用程序的人都可以轻松访问 UserDefaults。
有一些框架可以帮助您使用 Keychain,例如 KeychainAccess。
使用上面给出的框架,您可以使用 Codable 模型保存编码信息。
let keychain = Keychain(service: "Service")
if let value = newValue, let data = try? JSONEncoder().encode(value) {
try? keychain.set(data, key: "Key")
}
并检索:
let keychain = Keychain(service: "Service")
if let data = try? keychain.getData("Key") {
return try? JSONDecoder().decode(Model.self, from: data)
}
我有一个包含个人识别码和密码等敏感数据的对象,它作为数据保存在用户默认设置中。
将对象保存为用户默认值中的数据是一个安全的决定,还是将用户对象保存在钥匙串中会更好?
所有敏感信息都必须保留在钥匙串中,任何试图调试您的应用程序的人都可以轻松访问 UserDefaults。
有一些框架可以帮助您使用 Keychain,例如 KeychainAccess。
使用上面给出的框架,您可以使用 Codable 模型保存编码信息。
let keychain = Keychain(service: "Service")
if let value = newValue, let data = try? JSONEncoder().encode(value) {
try? keychain.set(data, key: "Key")
}
并检索:
let keychain = Keychain(service: "Service")
if let data = try? keychain.getData("Key") {
return try? JSONDecoder().decode(Model.self, from: data)
}