问题标签 [sskeychain]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
iphone - 如何为 SSKeychain 选择账户和服务值
我正在考虑使用SSKeychain在 iOS 应用程序中存储密码,但我不确定我是否需要帐户和服务的特定值,或者是否可以使用任意值。有没有普遍的做法?
iphone - 如何在钥匙串中保存 CFUUID
我正在开发一个 iPhone 应用程序。
应用程序访问一些涉及其他事物的 Web 服务应该识别设备 ID。
由于不推荐使用 UDID,因此我需要调用 CFUUIDCreate 来生成我自己的 UUID。
该 ID 是安全敏感的:我所有的网络通信都是加密的,除了我的证书认证服务器之外,我不希望任何人知道该 UUID。
此外,我希望这个标识符能够在重新安装后继续存在。
使用钥匙串来存储 UUID 似乎是一个显而易见的解决方案。
我怎么做?
在互联网上,有一些示例如何将用户名和密码存储在钥匙串中。我既没有用户也没有密码,只有 16 个字节的 UUID(或单个 NSString)。
我需要使用哪个 kSecClass?
我需要设置和检索哪些属性?
哪些属性是可选的,哪些是强制性的?
什么标头/框架定义了 CSSM_ALGORITHMS?
文档提到 cssmtype.h,xcode 自动完成有 <Security/cssmtype.h> 但是 xcode 编译器说“找不到文件”。
从常识来看,“身份”应该是最合适的。然而,文档说“身份是私钥和证书的组合”,我没有。另外,我没有看到“关键字节”属性。
提前致谢!
objective-c - Lion 更新后钥匙串项目更新被拒绝
我有一个应用程序将数据存储在将定期更新的钥匙串中。不出所料,每当我更新应用程序时,钥匙串再次需要用户对该构建的许可。但是,钥匙串不允许修改(删除项目或覆盖内容)。
显然这对于需要定期更新的钥匙串项目来说是个大问题。
我完全没有问题编辑/删除/修改具有相同内部版本号的钥匙串项目。
有任何想法吗?
[编辑:删除添加]
请参阅下面我自己的答案。
objective-c - iPad 应用程序的 sskeychain 和基本身份验证教程?
我在哪里可以找到使用sskeychain存储和检索用户名和密码以及在 UIWebView 中进行基本身份验证的详细教程?其次,就基于 Web 的应用程序存储和使用身份验证所需的方法而言,我是否走在正确的轨道上?(见下面的解释。)
我发现了一些使用不同方法的教程:
- 直接与钥匙串交互
- 手工钥匙扣包装(原文如此)
- SFHFKeychainUtils
根据以下其他 SO 问题的建议,建议使用 sskeychain 以便更轻松地使用钥匙串来存储身份验证参数。
- MacOS X Keychain 的 Cocoa 接口
- https://stackoverflow.com/questions/8381072/save-username-and-password-for-url-like-gmail-com-iphone
我的计划是按照建议将用户名和密码本地存储在钥匙串中的设备上,并使用基本身份验证通过 UIWebView 连接到我的 PHP 代码。有经验的 iOS 开发人员推荐的关于用户身份验证主题的 xcode/Obj-C 新手的良好分步教程吗?
Apple 文档似乎没有什么帮助。它要么是带有简单销售术语的页面,要么是对方法和参数的头条式描述,没有很多有用的示例。
更新:
我最终只使用 NSUserDefaults 在本地存储用户名和密码,并使用 AFNetworking 库进行身份验证。如果这些不明智,我会欢迎提供更好方法指导的答案。
ios5 - 如何创建唯一标识符并将其保存以识别用户(设备)
我想在 iOS 5 上创建唯一标识符,并在每次启动应用程序时使用它来识别用户(用户设备)。我可以通过以下代码创建唯一标识符
但无法将其保存在用户设备上,因此即使卸载应用程序也不会删除特定标识符。我尝试使用 SSKeychain 方法,但它给出了 Apple Mach-o Linker 错误。
请让我知道我可以完成同样的方式。
任何帮助表示赞赏。
objective-c - SSKeyChain:如何锁定这个钥匙串?
我的可可应用程序将具有以下功能: 1. 密码保护登录。用户必须输入密码才能使用该应用程序 2. 登录后,用户可以创建一些个人资料,该资料可以存储一些安全信息,如密码。
经过一番研究,我被告知我应该使用 KeyChain 来保存安全信息(所以在我的情况下,每个个人资料中的登录密码和安全信息)。
似乎有一个很好的 KeyChain 包装器 SSKeyChain 可以用来实现我的目标(因为我对 c lang 不太熟悉,所以使用苹果的钥匙串对我来说很难)而且我还找到了一些使用 SSKeyChain 的示例iOS:如何在应用程序中存储用户名/密码?:
但是我不确定我是否需要“保护”我的钥匙串: 1. 调用 setPassword:forService:account 时:我应该包含明文密码吗?还是我需要先加密我的密码?同样在设置服务名称时,我是否应该只包含我的应用程序名称 2. 如果可以使用 passwordForService: 轻松检索密码,那么它似乎不安全?因为其他应用程序也可以调用相同的方法来检索钥匙串?(前提是他们知道服务名称和帐户)
似乎你必须“锁定”和“解锁”这个钥匙串。我检查了 SSKeyChain 文档http://docs.samsoff.es/SSKeychain/Classes/SSKeychain.html但找不到任何“锁定”和“解锁”此类钥匙串的方法。那我要怎么保护呢?
objective-c - 区分 Mac OS X 钥匙串中的会话和系统项目
如何查询 Mac OS X 钥匙串以仅检索会话项目?
当我尝试获取所有这样的项目时:
会话项和系统项的键属性完全相同:acct、cdat、class、crtr、labl、mdat、svce
您如何查询钥匙串以仅获取会话项或区分它们?
感谢您的帮助 !
ios - 什么可能导致 SecItemAdd 或 SecItemCopyMatching 失败?
我正在使用此方法来检索保存的值(并SecItemAdd
用于最初添加它):
这段代码对大多数用户来说运行良好,但我的一小部分用户 (< 1%) 遇到的结果表明这里的读取或写入失败。不幸的是,我的代码吞下了任何错误(即当它们发生时不会在任何地方记录它们),所以我不知道为什么它在世界上失败了,而且我根本无法在我的任何开发设备上重现这个问题。
有谁知道可以在 iOS 设备上启用的任何可能导致SecItemAdd
或SecItemCopyMatching
失败的安全/权限设置?我试过打开密码锁定,但这似乎没有效果。
objective-c - SSKeychain“AppName”的真实性无法验证
我最近在我的应用程序中实现了 SSKeychain,每次我尝试从钥匙串中访问值时,都会提示我授予访问钥匙串的权限,并显示消息“无法验证“AppName”的真实性。你想允许吗?访问这个项目?
我已经选择了大约十亿次“始终允许”,但无论如何它仍然提示我。它真的很烦人,看起来非常不专业。拉我的头发试图找出我做错了什么或如何解决它。保存密码即时使用
[SSKeychain setPassword:self.passwordField.stringValue forService:@"AppName" account:self.loginField.stringValue];
并检索它
[SSKeychain passwordForService:@"AppName" account:self.loginField.stringValue];
有什么想法吗?
ios - SSKeychain - NSArray 到 NSString/NSMutableString 额外字符
我正在尝试SSKeychain
在我的应用程序中使用来存储用户的凭据。我可以成功保存凭据。但是,当我尝试检索凭据时,它们会作为 NSArray 输出。我想要一个特定的值,所以我使用valueForKey:NSString
它给了我( acct )
这是我正在使用的代码
我希望输出acct
不是(acct)
.