在Keychain中存储用户密码时是否存在任何已知的陷阱?我打算让用户能够输入密码才能访问我的iPad应用程序。我对Keychain工作有一个基本的读写字符串。我只是想确保我不允许他们进入一个场景,他们通过他们自己的过错锁定自己。例如:
感谢您分享的任何见解。
答案 0 :(得分:2)
保存密码。读回来。确保它有效。如果没有,请告诉用户它失败并让他们输入不同的密码。
并非所有键盘都可以输入所有字符。 3.1.2左右的手机锁键盘(不确定它们是否已修好)有一个错误,它会限制你使用“支持ASCII的”键盘(例如非希伯来语),但不限制可能的字符进入;启用某些键盘会添加额外的重音符号,而某些键盘则有其他符号。然后,您可以禁用某些键盘,锁定手机,并完全无法解锁。 (在测试之前我做了一个备份。)
在您的情况下,您不会阻止用户使用键盘,因此这不是问题。
请注意,您从错误的方向接近此方法:密码解锁内容。您正在尝试保持内容安全。您无需在任何地方保存密码(您可以使用它来加密内容)。
文件也会在(未加密的)备份中显示为未加密。在3.1.2中,您可以备份密码锁定的电话(不确定是否在3.2中修复了此问题);这意味着在没有备份密码的设备上,您可以通过将其连接到笔记本电脑并按“备份”来窃取所有内容。
自己有效地实施加密超出了这个答案的范围。
答案 1 :(得分:0)
关于字符串长度:
iOS Keychain上的最大可存储字符串长度与字符串的最大可能长度没有区别。人类可能不会长时间生成一个字符串,更不用说记住它了。
值得一提的是,存储在钥匙串中的大值存在性能损失,因为必须对其进行加密/解密才能进行写入和读取。
相关帖子: