螢幕快照.png
螢幕快照.png
開啟電腦鑰匙串,察看儲存在鑰匙串資料,如圖,ios和mac是相似的。
caa368d2-5497-492f-bf6a-37a414c5d9d6.png
對應的屬性
ksecclass-- 上圖中的種類
ksecattrservice--上圖中的位置
ksecattraccount--上圖中的賬戶
ksecvaluedata--上圖中的密碼
nsstring *key = @"pwd";
nsstring *value = @"password";
nsdata *valuedata = [value datausingencoding:nsutf8stringencoding];
nsstring *service = [[nsbundle mainbundle] bundleidentifier];
nsdictionary *dict = @;
cftyperef typeresult = null;
osstatus state = secitemadd((__bridge cfdictionaryref)dict, &typeresult);
if (state == errsecsuccess)
查詢屬性:secitemcopymatching
//查詢
-(void)findattr
; cfdictionaryref resultdict = null;
osstatus state = secitemcopymatching((__bridge cfdictionaryref)dict, (cftyperef*)&resultdict);
nsdictionary *result = (__bridge_transfer nsdictionary*)resultdict;
if (state == errsecsuccess)
}
當在字典中新增ksecreturnattributes並設定為yes時,表示查詢鑰匙串資料的屬性,secitemcopymatching的第二個引數為字典。
查詢資料:secitemcopymatching
//查詢資料
-(void)finddata
; cfdataref dataref = null;
osstatus state = secitemcopymatching((__bridge cfdictionaryref)queuedict, (cftyperef*)&dataref);
if (state == errsecsuccess)
}
當在字典中新增ksecreturndata並設定為yes時,表示查詢鑰匙串資料的資料,secitemcopymatching的第二個引數為cfdataref。當在字典中新增了ksecmatchlimit 時並設定為ksecmatchlimitall會返回所有的,secitemcopymatching第二個引數為cfarrayref,元素為cfdataref。
更新資料:secitemupdate
-(void)updatedata
; osstatus state = secitemcopymatching((__bridge cfdictionaryref)queue, null);
//存在修改
if (state == errsecsuccess) ;
osstatus updatestate = secitemupdate((__bridge cfdictionaryref)queue, (__bridge cfdictionaryref)paramdict);
if (updatestate == errsecsuccess) }}
刪除鑰匙串:secitemdelete
-(void)deletedata
; osstatus state = secitemcopymatching((__bridge cfdictionaryref)queue, null);
//存在
if (state == errsecsuccess) }}
iOS中使用鑰匙串
2014 05 05 22 40 7534人閱讀收藏 舉報 檔案保護用來保護 資料 而鑰匙串則用來保護 秘密 在這裡,秘密是指用來訪問其他資料的一小段資料。最常見的秘密就是密碼和私鑰了。鑰匙串中的條目都有幾個可搜尋的 屬性 和乙個加密過的 值 對於通用密碼條目,比較重要的屬性有賬戶 ksecattr...
鑰匙串訪問
蘋果在 ios 7.0.3版本以後公布鑰匙串訪問的sdk.鑰匙串訪問介面是純c語言的.鑰匙串使用 aes 256加密演算法,能夠保證使用者密碼的安全.鑰匙串訪問的第三方框架sskeychain,是對c語言框架的封裝.注意 不需要看原始碼.鑰匙串訪問的密碼儲存在 只有蘋果才知道.這樣進一步保障了使用者...
想使用「本地專案」 的鑰匙串
talagent 想使用 本地專案 的鑰匙串,被這個苦惱了很久。沒想到mac的內部驗證機制是這麼的緊密鑰匙串的目的是管理你的本地一些密碼檔案,程式與程式和系統之間的通訊都會用乙個鑰匙來驗證。所以不小心 把密碼改了,或是icloud刪除掉了主帳號不當造成一些錯誤,就會引起mac提示需要鑰匙串。當然你根...