用keychain這個特點來儲存裝置唯一標識。,keychain標識

來源:互聯網
上載者:User

用keychain這個特點來儲存裝置唯一標識。,keychain標識

由於IOS系統儲存的資料都是在sandBox裡面,一旦刪除App,sandBox也不複存在。好在有一個例外,那就是keychain(鑰匙串)。

通常情況下,IOS系統用NSUserDefaults儲存資料資訊,但是對於一些私密資訊,比如密碼、認證等等,就需要使用更為安全的keychain了。

keychain裡儲存的資訊不會因App被刪除而丟失。所以,可以利用這個keychain這個特點來儲存裝置唯一標識。

那麼,如何在應用裡使用使用keyChain呢,我們需要匯入Security.framework ,keychain的操作介面聲明在標頭檔SecItem.h裡。

直接使用SecItem.h裡方法操作keychain,需要寫的代碼較為複雜,我們可以使用已經封裝好了的工具類KeychainItemWrapper來對keychain進行操作。

KeychainItemWrapper是apple官方例子“GenericKeychain”裡一個訪問keychain常用操作的封裝類,在官網上下載了GenericKeychain項目後,

只需要把“KeychainItemWrapper.h”和“KeychainItemWrapper.m”拷貝到我們項目,並匯入Security.framework 。KeychainItemWrapper的用法:

/** 初始化一個儲存使用者帳號的KeychainItemWrapper */KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"Account Number"                                                                   accessGroup:@"YOUR_APP_ID_HERE.com.yourcompany.AppIdentifier"];   //儲存資料[wrapper setObject:@"<帳號>" forKey:(id)kSecAttrAccount];     [wrapper setObject:@"<帳號密碼>" forKey:(id)kSecValueData];     //從keychain裡取出帳號密碼NSString *password = [wrapper objectForKey:(id)kSecValueData];       //清空設定[wrapper resetKeychainItem];

其中方法“- (void)setObject:(id)inObject forKey:(id)key;”裡參數“forKey”的值應該是Security.framework 裡標頭檔“SecItem.h”裡定義好的key,用其他字串做key程式會出錯!

————————————————————————————————————————————————————————————————————————————————————————

————————————————————————————————————————————————————————————————————————————————————————

直接貼代碼

 

KeychainItemWrapper *keychain=[[KeychainItemWrapper alloc] initWithIdentifier:@"xxxxxx" accessGroup:nil];//xxxx 自訂

 

儲存

 

[keyWrapper setObject:@"myChainValues" forKey:(id)kSecAttrService];

[keyWrapper setObject:[usernameTextField text] forKey:(id)kSecAttrAccount];// 上面兩行用來標識一個Item

[keyWrapper setObject:[passwordTextField text] forKey:(id)kSecValueData];

 

 

讀取

 

[usernameTextField setText:[keyWrapper  objectForKey:(id)kSecAttrAccount]];

[passwordTextField setText:[keyWrapper objectForKey:(id)kSecValueData]];

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.