测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2016年12月 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 Ben Bahrenburg 维护。
KeyStorage 是一个用 Swift 编写的简单安全的密钥持久化库。使用 Keychain 或 NSUserDefaults 快速、简单并安全地持久化密码、首选项和其他键信息。
KeyStorage 可以通过 CocoaPods 获得。要安装它,只需将以下行添加到您的 Podfile 中
pod "KeyStorage"
KeyStorage 有五个主要类
每个 KeyStorage 提供程序都有各种类型安全的选项来保存键信息。请访问 wiki 获取更多详情。
每个 KeyStorage 提供程序都有各种类型安全的选项来读取键信息。请访问 wiki 获取更多详情。
KeyStorage 提供了一些方法,以帮助您与 StorageProvders 一起工作。
exists - 返回一个布尔值,指明指定的键是否存在
let doesExist = keyStoreProvider.exists(forKey: "Hello")
removeKey - 根据指定键删除存储的值
let success = keyStoreProvider.removeKey(forKey: "Hello")
print("was success? \(success)")
removeAllKeys - 删除 KeyStorage 提供者的所有存储值
let success = keyStoreProvider.removeAllKeys()
print("was success? \(success)")
KeyStoreDefaultsProvider 存储提供者用于管理对 NSUserDefaults 的持久化。
可以使用以下可选参数创建 KeyStoreDefaultsProvider。
suiteName : 字符串
指定要使用的应用组名称。
let provider = KeyStoreDefaultsProvider(suiteName: "MyAppGroup")
cryptoProvider : KeyStorageCrypter
用作加密和解密键值的加密提供者。
let provider = KeyStoreDefaultsProvider(cryptoProvider: myCryptoProvider)
组合示例
如果您希望使用加密提供者并实现应用组共享,可以同时指定它们。
let provider = KeyStoreDefaultsProvider(suiteName: "MyAppGroup", cryptoProvider: myCryptoProvider)
The KeyStorageKeyChainProvider storage provider manages persistance to iOS Keychain.
可以使用以下可选参数创建 KeyStorageKeyChainProvider。
serviceName : 字符串
用于标识存储在 Keychain 中的键值的服务名称。
let provider = KeyStorageKeyChainProvider(serviceName: "myApp")
accessGroup : 字符串
用于标识存储在 Keychain 中的键值的 Keychain 访问组。如果您正在使用 Keychain 共享,则需要实现此功能。
let provider = KeyStorageKeyChainProvider(accessGroup: "myApp")
cryptoProvider : KeyStorageCrypter
用作加密和解密键值的加密提供者。
let provider = KeyStorageKeyChainProvider(cryptoProvider: myCryptoProvider)
accessible : KeyChainInfo.accessibleOption
Keychain 中值的可访问级别。有关详细信息,请参阅 Keychain 文档此处。
let provider = KeyStorageKeyChainProvider(accessible: .afterFirstUnlock)
组合示例
根据需要组合以上所有选项。以下是一个完整实现的示例。
let provider = KeyStorageKeyChainProvider(serviceName: "myApp", accessGroup: "my-awesome-group", accessible: .afterFirstUnlockThisDeviceOnly, cryptoProvider: myCryptoProvider)
通过编程查找应用程序的 App ID 前缀和默认 Keychain 组。
//Get Information
let info = KeychainHelpers.getAccessGroupInfo()
print("App ID Prefix \(info.prefix)")
print("KeyChain Group \(info.keyChainGroup)")
print("Raw kSecAttrAccessGroup value \(info.rawValue)")
Ben Bahrenburg,@bencoding
KeyStorage 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。