詳解iPhone開(kāi)發(fā)保存用戶密碼安全
iPhone開(kāi)發(fā)保存用戶密碼安全方法是本文要介紹的內(nèi)容,安全問(wèn)題很重要,先來(lá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開(kāi)發(fā)中也有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)鑰匙串.
- //獲取密碼
- + (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開(kāi)發(fā)保存用戶密碼安全方法的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!