Tag: 密码保护

IOS在钥匙串中存储多个密码

在我的应用程序中,我可以使用此代码在钥匙串中保存读取良好的1个密码存储区 // save password [keychainItem setObject:textFieldPassword.text forKey:(__bridge id)(kSecValueData)]; //get pasword from keychain NSString *_password = [keychainItem objectForKey:(__bridge id)(kSecValueData)]; 我的问题是:如何在钥匙串中一次存储超过一个密码?

如何为移动应用程序创build无密码login

我在构build移动应用程序和API之间build立某种无密码login(假设我可以控制两者)进行构build。 其动机是,必须login非常恼人的用户和安全风险(例如,用户将重用现有的密码),我希望用户能够立即开始使用该应用程序。 我想知道是否有一些技术可以工作。 例如: 在移动设备上生成并随机login/密码并将密码存储在钥匙串中。 使用此login名/密码组合注册API。 这将返回一个令牌。 令牌用于随后的调用 缺点是: 如果用户删除了应用程序,login/密码可能会丢失(这可以通过使用iCloud来存储login信息来缓解 – 但这对密码不好)? 密码存储在设备上(但是它在钥匙串中) 所以我的问题:这样的事情是否可行和安全? 有没有已知的技术来做到这一点?

密码保护iPhone应用程序

我开始一个新的应用程序,我想知道如何要求密码才能打开它。 我正在考虑在应用程序委托实现文件的应用程序didFinishLaunchingWithOptions方法中的UIActionSheet ,但我不确定如何去做。 我会继续尝试。 发现这个video ,这似乎相当有益。 现在我已经有了我的UIActionSheetpopup显示“input密码”,并试图计算如何将一个键盘添加到操作表。

钥匙串:报告为errSecItemNotFound的项目,但在添加时收到errSecDuplicateItem

这个问题一直在困扰我,我希望有人对此有所了解。 从本质上讲,我有一小部分用户无法保存/更新项目到钥匙串。 有问题的控制stream程如下: 我们使用SecItemCopyMatching检查项目的存在。 这将返回错误代码errSecItemNotFound 然后我们尝试通过SecItemAdd添加项目,但是这会返回errSecDuplicateItem 。 因此,我们有一些用户根本无法更新钥匙串项目的一个子集,要求他们恢复他们的设备以清除钥匙串。 这显然是一个不可接受的解决方法。 它似乎以前为他们工作,但现在已经进入这个不可更新的周期。 经过研究,我看到有关SecItemCopyMatching使用的search查询的问题不够具体,但我的代码尽可能使用通用search查询。 + (NSMutableDictionary*)queryForUser:(NSString*)user key:(NSString*)key { if (!key || !user) { return nil; } NSString* bundleId = [[NSBundle mainBundle] bundleIdentifier]; NSString* prefixedKey = [NSString stringWithFormat:@"%@.%@", bundleId, key]; NSMutableDictionary* query = [NSMutableDictionary dictionary]; [query addEntriesFromDictionary:@{(__bridge id)kSecClass : (__bridge id)kSecClassGenericPassword}]; [query addEntriesFromDictionary:@{(__bridge id)kSecAttrAccount : user}]; [query addEntriesFromDictionary:@{(__bridge id)kSecAttrService […]