iPhone應(yīng)用 保存用戶密碼安全方法
iPhone應(yīng)用 保存用戶密碼安全方法是本文要介紹的內(nèi)容,作為一名iPhone開(kāi)發(fā)者, 你需要對(duì)你的用戶安全負(fù)責(zé). 請(qǐng)問(wèn), 你是怎么保存用戶的密碼的?
直接保存到plist里?
加密? AES? DES? 能保證你的代碼不被反編譯拿到你的加密Key?
這也未免太不蘋(píng)果了吧. 我Google了一下, 國(guó)內(nèi)的開(kāi)發(fā)者根本沒(méi)有注意到這個(gè)問(wèn)題.
蘋(píng)果系統(tǒng)中有個(gè)程序叫”鑰匙串” (Keychain), 它不僅僅是你申請(qǐng)開(kāi)發(fā)證書(shū)用的, 哈哈. 它可以存密碼!
這也是蘋(píng)果給出的保存密碼的***解決方案.
iPhone中也有Keychain, 用過(guò)PushFix破解包(就是那個(gè)修復(fù)推送的小工具)的國(guó)內(nèi)iPhone破解用戶應(yīng)該還有印象.
//獲取密碼
用原生的Security.framework就可以實(shí)現(xiàn)鑰匙串的訪問(wèn), 讀寫(xiě), 但是只能在真機(jī)上進(jìn)行, 模擬器會(huì)出錯(cuò). 在Github上, 有個(gè)封裝的非常好的類 來(lái)實(shí)現(xiàn)這個(gè)功能, 讓你既能在模擬器又能在真機(jī)上訪問(wèn)鑰匙串.
C代碼
- + (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error;
- //保存密碼
- + (void) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *)
- serviceName updateExisting: (BOOL) updateExisting error: (NSError **) error;
- //刪除密碼
- + (void) deleteItemForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error;
類的地址: http://github.com/ldandersen/scifihifi-iphone/tree/master/security
小結(jié):iPhone應(yīng)用 保存用戶密碼安全方法的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!