`
seemefly163_0
  • 浏览: 20957 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
最近访客 更多访客>>
社区版块
存档分类
最新评论

(转)使用keyChain存储用户敏感信息

阅读更多

iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个ios程序都有一个独立的keychain存储。相对于NSUserDefaults、文件保存等一般方式,keychain保存更为安全,而且keychain里保存的信息不会因App被删除而丢失,所以在重装App后,keychain里的数据还能使用。从ios 3。0开始,跨程序分享keychain变得可行。

 

SFHFKeychainUtils
SFHFKeychainUtils是另一个封装了KeyChain简单操作的第三方类库,使用上比KeychainItemWrapper要简单点,SFHFKeychainUtils只提供了获取、保存和删除三个方法:

[代码]oc代码:

#import <UIKit/UIKit.h>   
  
@interface SFHFKeychainUtils : NSObject {   
       
}   
  
/** 从Keychain里获取用户密码 
*param username 用户名  
*param serviceName 服务名  
*return NSString 用户名对应的密码  
*/  
+ (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error;   
  
/** 
*把用户的密码保存到Keychain里  
*@param username 用户名  
*@param password 要保存的密码  
*@param serviceName 本条keychains所属的服务(组)  
*return BOOL 是否存储成功  
*/  
+ (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting error: (NSError **) error;   
  
/** 
* 删除某个用户信息  
*param username 用户名  
*param serviceName 用户所属的服务(组)  
*return BOOL 是否删除成功  
*/  
+ (BOOL) deleteItemForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error;   
  
@end

 使用方法:

[代码]oc代码

 

#define ServiceName @"com.mycompany.yourAppServiceName"   
  
NSError *error;   
NSString *userName = @"<用户名>";   
NSString *password = @"<用户密码>";   
       
/** 保存用户的密码*/  
BOOL saved = [SFHFKeychainUtils storeUsername:userName   
                                  andPassword:password    
                               forServiceName:ServiceName    
                               updateExisting:YES    
                                     error:&error ];   
if (!saved) {   
    NSLog(@"保存密码时出错:%@", error);   
}   
       
error = nil;   
NSString *thePassword = [SFHFKeychainUtils getPasswordForUsername:userName    
                                                   andServiceName:ServiceName    
                                                            error:&error];   
if(error){   
    NSLog(@"从Keychain里获取密码出错:%@", error);   
}  

 

分享到:
评论

相关推荐

    swift-封装的Keychain永久保存数据

    其中,`Keychain`是一种安全、持久的数据存储方式,尤其适用于存储敏感信息,如用户凭据、密码和其他个人识别信息(PII)。本篇文章将深入探讨如何在Swift中封装Keychain以实现数据的永久保存。 一、Keychain的基本...

    ios-使用keyChain持久化存储密码.zip

    在实际应用中,使用Keychain存储密码或其他敏感信息时,我们应该遵循最佳实践,例如: 1. **不要存储明文密码**:始终对密码进行哈希处理或使用加密算法后再存储。 2. **使用服务和账户**:通过服务名和服务账户...

    保存用户名、密码等敏感数据的方法, Keychain DEMO

    在iOS和macOS开发中,保护用户数据的安全性至关重要,...总结起来,Keychain是iOS和macOS开发中保护敏感数据的重要工具,通过DEMO学习和理解Keychain的使用,开发者能更好地确保用户数据的安全,提升应用的整体质量。

    iOS KeyChain demo(数据AES加密)

    描述中提到的“用户信息保存”和“自动登录”,就是利用Keychain存储用户的账号和密码,当用户再次打开应用时,可以通过Keychain快速获取这些信息,实现无痛登录。这种方式比在UserDefaults中存储更安全,因为...

    Java_使用keystore encryptionios Keychain保存敏感数据到android共享偏好中.zip

    这个压缩包文件“Java_使用keystore encryptionios Keychain保存敏感数据到android共享偏好中.zip”显然提供了关于如何在Java中利用keystore系统进行加密,并将加密后...,以及在iOS中使用Keychain存储敏感数据的方法...

    iOS KeyChain

    总的来说,iOS KeyChain是保护用户敏感信息的关键工具,通过使用像SFHFKeychainUtils这样的辅助库,开发者可以更方便地集成这一功能。理解并熟练运用KeyChain,不仅可以提升应用的安全性,也能增强用户对应用的信任...

    用 keychain保存信息

    总的来说,Keychain是苹果生态系统中一个非常重要的安全组件,它简化了用户管理密码和其他敏感信息的过程,同时也为开发者提供了一个安全存储用户数据的途径。了解并充分利用Keychain的功能,能有效提升数字生活的...

    iOS--keychain库

    在iOS开发中,Keychain库是一个非常重要的工具,它用于安全地存储用户的敏感信息,如密码、证书和访问令牌。Keychain服务通过提供一个统一的接口来管理这些数据,确保了数据的安全性和隐私性,避免了明文存储带来的...

    最新IOS KeyChain的封装

    在iOS开发中,Keychain是苹果提供的一种安全存储用户敏感信息如密码、证书、密钥等数据的机制。Keychain服务允许应用将这些信息存储在设备的受保护区域,即使设备被越狱,数据依然相对安全。本资源“最新IOS ...

    ios keychain 操作

    iOS中的Keychain是一个安全存储用户敏感信息的重要工具,如密码、证书、账户ID等。它为应用程序提供了一种加密的方式来存储这些数据,并确保即使应用程序被删除或设备被重置,这些信息仍然可以保留。Keychain服务是...

    ios存入资源到keychain SDK

    在iOS开发中,Keychain是一种安全存储用户敏感信息如密码、证书、密钥等的关键工具。Keychain Services是由Apple提供的一套API,它允许开发者在应用程序之间共享安全数据,并且这些数据在设备重置或应用卸载后仍能...

    封装keychain

    在iOS开发中,Keychain是一个安全且方便的数据存储机制,用于保存敏感信息,如用户密码、证书、密钥等。...在实际项目中,正确地封装和使用Keychain可以帮助我们保护用户的敏感信息,提升应用的安全性。

    iOS中Keychain开发

    在提供的`JIUKeyChainTest`项目中,你可以看到一个简单的Keychain存储示例。这个Demo可能包含了添加、查询和删除Keychain项的功能,通过实际运行和查看代码,可以帮助你更好地理解和应用Keychain。 总的来说,...

    ios-钥匙串(keychain)存储.zip

    钥匙串(Keychain)是iOS和macOS系统内建的一个安全组件,它将数据以加密的形式存储在设备上,提供了一种安全的途径来管理用户凭据和其他敏感信息。与`NSUserDefaults`不同,钥匙串不仅能够存储简单的键值对,还能...

    iphone-keyChain保存数据-官方demo

    在iOS开发中,Keychain是苹果提供的一种安全存储用户敏感信息的方法,比如密码、证书、密钥等。它为应用程序提供了安全存储用户数据的途径,这些数据在设备重启或者应用程序被卸载后仍然可以保留。Keychain服务允许...

    ios-keychain.zip

    `Keychain`是iOS提供的一种安全存储机制,它是一个专门用于存储诸如用户账号、密码、证书等敏感信息的安全数据库。与`NSUserDefaults`不同,`Keychain`提供了更强的加密措施,使得即使设备被越狱,数据也难以被非法...

    简单的Keychain封装KeychainAccess.zip

    在iOS和OS X开发中,Keychain是存储敏感信息如用户密码、证书和密钥的安全容器。`KeychainAccess`是一个开源Swift库,它为开发者提供了一种简单易用的方式来操作Keychain,使得原本复杂的Objective-C接口变得更为...

    iOS keychain类库

    在iOS开发中,Keychain是苹果提供的一种安全存储用户敏感数据的机制,如密码、证书、密钥等。它是一个安全的数据库,只有经过授权的应用程序才能访问其中的数据。KeychainItemWrapper是苹果官方推荐的一个类,用于...

    swift-YSKeychain对keychain的一些简单封装

    在iOS开发中,Keychain是苹果提供的一种安全存储用户敏感信息如账号密码、证书等的机制。...在使用过程中,开发者应当注意遵循苹果的隐私政策,合理使用Keychain存储用户数据,确保应用的合规性和用户隐私。

Global site tag (gtag.js) - Google Analytics