查询 IOS 没有帐户属性的钥匙串?
Querying IOS Keychain with out account attribute?
您好,我目前正在尝试在没有 kSecAttrAccountValue 属性且仅使用 kSecAttrServiceValue 的情况下查询我的项目的钥匙串。这可能吗?状态显示为 0,但响应为零。我尝试添加一个帐户,效果很好!但是,我的目标是获得没有它的结果或存储在同一服务中的所有结果。请告诉我谢谢!
参考:
代码:
let keychainQuery: NSMutableDictionary = NSMutableDictionary(objects: [kSecClassGenericPasswordValue, service, kCFBooleanTrue, kSecMatchLimitOneValue], forKeys: [kSecClassValue, kSecAttrServiceValue, kSecReturnDataValue, kSecMatchLimitValue])
var dataTypeRef :AnyObject?
// Search for the keychain items
let status: OSStatus = SecItemCopyMatching(keychainQuery, &dataTypeRef)
var contentsOfKeychain: String?
if status == errSecSuccess {
if let retrievedData = dataTypeRef as? Data {
contentsOfKeychain = String(data: retrievedData, encoding: String.Encoding.utf8)
}
} else {
print("Nothing was retrieved from the keychain. Status code \(status)")
}
return contentsOfKeychain
KeychainAccess使用钥匙串更简单:
// Create keychain object
let keychain = Keychain(service: "com.company.AppName")
// Store value in keychain
keychain["password"] = "test"
// Retrieve value from keychain
let password = keychain["password"]
您好,我目前正在尝试在没有 kSecAttrAccountValue 属性且仅使用 kSecAttrServiceValue 的情况下查询我的项目的钥匙串。这可能吗?状态显示为 0,但响应为零。我尝试添加一个帐户,效果很好!但是,我的目标是获得没有它的结果或存储在同一服务中的所有结果。请告诉我谢谢!
参考:
代码:
let keychainQuery: NSMutableDictionary = NSMutableDictionary(objects: [kSecClassGenericPasswordValue, service, kCFBooleanTrue, kSecMatchLimitOneValue], forKeys: [kSecClassValue, kSecAttrServiceValue, kSecReturnDataValue, kSecMatchLimitValue])
var dataTypeRef :AnyObject?
// Search for the keychain items
let status: OSStatus = SecItemCopyMatching(keychainQuery, &dataTypeRef)
var contentsOfKeychain: String?
if status == errSecSuccess {
if let retrievedData = dataTypeRef as? Data {
contentsOfKeychain = String(data: retrievedData, encoding: String.Encoding.utf8)
}
} else {
print("Nothing was retrieved from the keychain. Status code \(status)")
}
return contentsOfKeychain
KeychainAccess使用钥匙串更简单:
// Create keychain object
let keychain = Keychain(service: "com.company.AppName")
// Store value in keychain
keychain["password"] = "test"
// Retrieve value from keychain
let password = keychain["password"]