Latest 0.0.1
Homepage https://github.com/smartwalle/KIKeyChain
License MIT
Platforms ios , requires ARC
Frameworks Security
Authors

KIKeyChain

在 iOS 应用程序开发过程中,我们经常会存储一些比较重要的信息。比如涉及到用户系统的 App, 我们就需要考虑自动登录的功能,如果把用户的用户名和密码存储在 NSUserDefault 中,会很不安全。第一,该信息是明文存储的;第二,可以通过一些工具获取到 NSUserDefault 中的信息。这样就很容易泄露用户的账号信息,这当然是我们不愿意看到的。

出于安全方面的考虑,Apple 为我们提供了一个叫 KeyChain 的工具, 存储在里面的信息不能说绝对安全,但是相对于 NSUserDefault 或者其它一些存储在 App 沙盒中的信息,其要安全很多。第一,KeyChain 的存储位置位于 /private/var/Keychains/… ,如果我们要直接访问里面的信息,必须要先越狱之后才能访问;第二,KeyChain 的关键信息都是经过加密处理的,所以就算获取到之后也还需要做破解工作。

网上有很多关于 KeyChain 的访问组件,Apple 也提供了相应的 Demo。但是,感觉不怎么实用,操作起来相对麻烦。所以决定自己对其重新进行封装,然后就有了这个 KIKeyChain 这个组件。

使用方法如下:

Pods:

pod 'KIKeyChain'

写入数据:

KIKeyChain *key = [KIKeyChain keyChainWithIdentifier:@"default_user"];
[key setValue:@"user1" forKey:@"username"];
[key setValue:@"password1" forKey:@"password"];
[key write];

读取数据:

KIKeyChain *key = [KIKeyChain keyChainWithIdentifier:@"default_user"];
NSLog(@"%@==%@", [key valueForKey:@"username"], [key valueForKey:@"password"]);

Latest podspec

{
    "name": "KIKeyChain",
    "version": "0.0.1",
    "summary": "KIKeyChain",
    "description": "## KIKeyChainnnu5728 iOS u5e94u7528u7a0bu5e8fu5f00u53d1u8fc7u7a0bu4e2duff0cu6211u4eecu7ecfu5e38u4f1au5b58u50a8u4e00u4e9bu6bd4u8f83u91cdu8981u7684u4fe1u606fu3002u6bd4u5982u6d89u53cau5230u7528u6237u7cfbu7edfu7684 App, u6211u4eecu5c31u9700u8981u8003u8651u81eau52a8u767bu5f55u7684u529fu80fduff0cu5982u679cu628au7528u6237u7684u7528u6237u540du548cu5bc6u7801u5b58u50a8u5728 NSUserDefault u4e2duff0cu4f1au5f88u4e0du5b89u5168u3002u7b2cu4e00uff0cu8be5u4fe1u606fu662fu660eu6587u5b58u50a8u7684uff1bu7b2cu4e8cuff0cu53efu4ee5u901au8fc7u4e00u4e9bu5de5u5177u83b7u53d6u5230 NSUserDefault u4e2du7684u4fe1u606fu3002u8fd9u6837u5c31u5f88u5bb9u6613u6cc4u9732u7528u6237u7684u8d26u53f7u4fe1u606fuff0cu8fd9u5f53u7136u662fu6211u4eecu4e0du613fu610fu770bu5230u7684u3002nnu51fau4e8eu5b89u5168u65b9u9762u7684u8003u8651uff0cApple u4e3au6211u4eecu63d0u4f9bu4e86u4e00u4e2au53eb KeyChain u7684u5de5u5177, u5b58u50a8u5728u91ccu9762u7684u4fe1u606fu4e0du80fdu8bf4u7eddu5bf9u5b89u5168uff0cu4f46u662fu76f8u5bf9u4e8e NSUserDefault u6216u8005u5176u5b83u4e00u4e9bu5b58u50a8u5728 App u6c99u76d2u4e2du7684u4fe1u606fuff0cu5176u8981u5b89u5168u5f88u591au3002u7b2cu4e00uff0cKeyChain u7684u5b58u50a8u4f4du7f6eu4f4du4e8e /private/var/Keychains/... uff0cu5982u679cu6211u4eecu8981u76f4u63a5u8bbfu95eeu91ccu9762u7684u4fe1u606fuff0cu5fc5u987bu8981u5148u8d8au72f1u4e4bu540eu624du80fdu8bbfu95eeuff1bu7b2cu4e8cuff0cKeyChain u7684u5173u952eu4fe1u606fu90fdu662fu7ecfu8fc7u52a0u5bc6u5904u7406u7684uff0cu6240u4ee5u5c31u7b97u83b7u53d6u5230u4e4bu540eu4e5fu8fd8u9700u8981u505au7834u89e3u5de5u4f5cu3002nnu7f51u4e0au6709u5f88u591au5173u4e8e KeyChain u7684u8bbfu95eeu7ec4u4ef6uff0cApple u4e5fu63d0u4f9bu4e86u76f8u5e94u7684 [Demo](https://developer.apple.com/library/ios/samplecode/GenericKeychain/Introduction/Intro.html)u3002u4f46u662fuff0cu611fu89c9u4e0du600eu4e48u5b9eu7528uff0cu64cdu4f5cu8d77u6765u76f8u5bf9u9ebbu70e6u3002u6240u4ee5u51b3u5b9au81eau5df1u5bf9u5176u91cdu65b0u8fdbu884cu5c01u88c5uff0cu7136u540eu5c31u6709u4e86u8fd9u4e2a KIKeyChain u8fd9u4e2au7ec4u4ef6u3002nnu4f7fu7528u65b9u6cd5u5982u4e0buff1annu5199u5165u6570u636euff1ann    KIKeyChain *key = [KIKeyChain keyChainWithIdentifier:@"default_user"];n    [key setValue:@"user1" forKey:@"username"];n    [key setValue:@"password1" forKey:@"password"];n    [key write];nnu8bfbu53d6u6570u636euff1ann    KIKeyChain *key = [KIKeyChain keyChainWithIdentifier:@"default_user"];n    NSLog(@"%@==%@", [key valueForKey:@"username"], [key valueForKey:@"password"]);",
    "homepage": "https://github.com/smartwalle/KIKeyChain",
    "license": "MIT",
    "authors": {
        "SmartWalle": "[email protected]"
    },
    "platforms": {
        "ios": null
    },
    "source": {
        "git": "https://github.com/smartwalle/KIKeyChain.git",
        "tag": "0.0.1"
    },
    "source_files": "KIKeyChain/KIKeyChain/*.{h,m}",
    "frameworks": "Security",
    "requires_arc": true
}

Pin It on Pinterest

Share This