999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

指紋識別技術在IOS開發中的應用研究

2017-02-07 13:21:30黃瀏展
軟件 2016年7期

黃瀏展

摘要:蘋果自iphone5S推出了指紋識別實現指紋解鎖功能,隨后在IOS8開放了touch ID接口。本文對iPhone的指紋識別技術進行了簡要介紹,并對指紋識別技術在IOS開發中的應用進行了詳細闡述。

關鍵詞:指紋識別;IOS;App;登錄

引文

指紋是每個人所具有的生理特征,并且每個人的指紋都是獨一無二的,每個人的指紋在圖案、斷點和交叉點上各不相同,它也不會隨著年齡的變化而發生變化。正因為指紋所具備的獨特的特征,被廣泛用作個人的身份識別。

指紋識別技術是利用人類指紋的唯一性,通過對指紋圖案的采樣、特征信息提取并與庫存樣本相比較的過程來實現身份識別的技術。與帳號加密碼、充值IC卡等傳統的身份識別手段相比,指紋識別技術具有不會丟失、不會遺忘、唯一性、不變性、防偽性能好和使用方便等優點,目前應用在偵訊、門禁、電腦、手機、考勤、支付等領域。

隨著智能手機的普及和移動互聯網的發展,人們日常工作生活中越來越多的事務通過手機來完成。越來越多的應用要求用戶通過輸入密碼來登錄,密碼難以記憶,輸入起來麻煩,使用起來極為不便。如果能利用指紋識別技術來實現各種APP的登陸將極大的方便用戶,為用戶提供更好的體驗。本文將介紹IOS開發中,如果使用蘋果touch ID實現指紋登陸。

2蘋果指紋識別技術介紹

2.1蘋果指紋識別技術原理

2013年蘋果公司在iphone5S上首次使用指紋識別功能實現手機的解鎖。在手機的Home鍵內植入指紋識別芯片,利用射頻傳感器直接讀取真皮層的指紋,生成精準的指紋圖像。通常得到的指紋圖像是灰度圖。為了提取指紋特征,首先將灰度圖轉化成計算機能處理的二進制圖像。Touch ID芯片會根據3種基本指紋類型(弧形紋、箕形紋或斗形紋)將指紋分類,提取指紋紋路中的特征點,包括紋路的起點、終點、分叉點和毛孔的位置等。然后將該手指的特征點數據加密之后保存為數學表達式。通過指紋識別進行身份驗證的過程就是再次執行以上過程,然后將獲得的指紋與已經注冊的指紋數據進行比對,如果匹配則指紋解鎖成功。

從以上描述可以看出蘋果的指紋識別技術有以下幾個特點:第一、基于第三代生物射頻指紋識別技術(射頻原理真皮指紋核心技術(線型采集器)),通過傳感器發射出微量射頻信號,穿透手指的表皮層去控測里層的紋路,以便獲得較精準的指紋圖像。而且獲取的是真皮層的指紋特征,防偽指紋能力增強。第二、保存的并非指紋本身,而是指紋的特征數據,并且經過加密處理。第三、指紋數據保存在本地,而非云端,并且目前是不可以獲取指紋數據的。以上三點從一定程度上保證了指紋識別的安全性。

2.2TouchID在APP開發中的應用

2.2.1指紋識別的應用

Iphone5s添加指紋識別后,僅僅將指紋識別用于手機的解鎖。iOS8發布以后,在其SDK開放了TouchID的接口。該接口提供的函數主要實現兩個功能,判斷當前設備是否支持指紋識別功能和指紋驗證。前面已經介紹,蘋果指紋識別并不會保存指紋到云端,也不提供獲取指紋的功能,因此其指紋識別僅針對當前使用設備,并且不能存儲指紋,只能對當前設備的指紋識別進行驗證。根據蘋果官方的介紹Touch ID目前主要應用在兩個方面:用于Key Chain加密和用于授權。

根據蘋果指紋識別的原理,目前指紋識別技術在IOS開發中的應用主要是指紋識別登錄App。App登錄后,一段時間不用或者其它原因使其進人后臺運行,當用戶重新將APP喚醒至前臺時,一般要求輸人密碼,這個時候可以利用指紋識別來代替密碼輸入,為用戶提供便利,省去輸入密碼的繁瑣,也減少密碼被盜的風險。

2.2.2 Touch ID接口介紹

IOS8以后,蘋果對開發者開放了Touch ID接口,可以通過Touch ID進行身份認證,下面接口簡單介紹。

Touch ID用于身份認證的所有的接口都在LocalAuthentication框架中,該框架包含了三個頭文件:LAContext.h,LAError.h,LAPublicDefines.h。LAContext.h用來評估認證策略,允許應用程序要求用戶使用個人信息,如注冊信息或Touch ID的個人信息來驗證自己的身份。LAError.h中定義了一些錯誤信息代碼。實際用到的函數有兩個,如下所示。

上述兩個函數都是LAContext的成員函數。目前LAPolicy有兩個值:LAPolicyDeviceOwnerAuthe-nticationWithBiometrics和LAPolicyDeviceOwnerA-uthentication。第一個值表示設備必須使用touch ID認證識別,如果設備不支持或者沒有設置指紋,則不能通過認證;第二個值表示設備可以通過touchID和密碼來認證識別,當不能使用指紋識別時則使用密碼。

如果canEvaluatePolicy函數返回值為YES,表示設備支持指紋識別,那么可以調用evaluatePolicy:函數進行指紋識別了。調用evaluatePolicy函數后會彈出一個alert。該alert可定制的只有兩處:loca-lizedReason參數指定提示框的提示信息,用來向用戶說明使用Touch ID的目的;LAContext的locali-zedFallbackTitle屬性用來設置密碼輸入框的形式,如果不設置的話,默認提示是“Enter Password”。如果該屬性設置為空,該按鈕會被隱藏。

彈出Alert后有三種方式退出驗證(alert會被dismiss,reply回調會被調用):用戶指紋通過驗證;用戶點擊“Enter Password”按鈕,通過輸入密碼驗證;用戶點擊“Cancel”按鈕,取消指紋驗證。

在指紋驗證過程中,如果用戶輸入了錯誤的指紋,這種情況下,提示框控件不會被dismiss,其標題會由項目名稱變為為“Try Again”,并有彈簧狀的動畫效果過渡。如果連續三次驗證錯誤,則取消指紋驗證。

3指紋識別的應用實踐

前面已經提到目前指紋識別在ios開發中的應用主要是指紋識別登錄APP,下面將就其如何實現提出一種思路并詳細進行闡述。

3.1指紋驗證綜述

在使用各種APP的時候,用戶一方面希望能保證安全,避免信息被盜,保護自己的隱私,另一方面又希望用起來方便。有些APP每天被反復登錄使用,但用戶又不想反復的去輸入密碼,同時還要保證別人不能隨意看到自己的信息。這個時候就可以使用指紋驗證功能來達到該目的。目前有越來越多的應用使用了指紋驗證功能來實現應用從后臺到前臺的用戶驗證,如qq,支付寶等。

要實現指紋驗證功能,主要分兩個步驟,第一步驗證并開啟設備的指紋識別功能;第二步從后臺到前臺的指紋驗證。

3.2驗證并開啟設備的指紋識別功能

3.2.1實現邏輯

在APP開發中實現開啟指紋驗證功能,只是一種模擬效果,因為真正開啟該功能只能在設備的系統設置中。如圖1所示,可以利用UISwitch控件模擬一種開啟指紋解鎖的效果,當點擊開關處于開啟狀態時,彈出如圖所示的指紋驗證窗口,通過觸摸Home鍵通過指紋驗證,表示APP支持指紋識別。保存開關控件的狀態,同時設置一個Bool變量來保存是否支持指紋識別的狀態。如果switch處于開的狀態,則將這兩個Bool變量都保存為YES,否則都為NO,表示不支持指紋識別,同時Switch處于關閉狀態。這個設置,一般在用戶登錄APP后,在APP的安全設置中。

3.2.2關鍵代碼

touch ID接口主要提供了兩個函數用于指紋識別,在開啟指紋識別時(點擊switch開關),會調用這兩個函數來實現指紋識別。首先要判斷設備是否支持指紋識別功能,下面列出主要代碼。

上述代碼中,如果驗證成功,一般通過主線程來處理相關操作。如果驗證失敗,則根據LAError.h文件中的錯誤代碼來做相應的處理,如LAErro-rAuthenticationFailed表示因為用戶提供了錯誤的指紋沒有驗證成功。

3.3指紋驗證

APP從后臺進入前臺,必須通過指紋驗證才能重新進人,這樣可以確保應用在使用后沒有即時退出造成的風險。要達到這個目的,有兩個前提條件。第一是當前APP是開啟了指紋識別;第二是APP已經登錄了,并處于有效使用時間內。如果開啟了指紋識別,同時APP處于登錄有效時間內,那么APP從后臺進入前臺時,則進入如圖3所示界面,通過指紋識別來重新進入APP。在圖3界面點擊指紋圖標,進入圖4所示界面,然后通過指紋識別解鎖。指紋識別解鎖過程和前述的開啟指紋識別過程類似。也是分為兩步,第一步,設備是否支持指紋識別;第二步,如果支持指紋則通過指紋驗證。代碼實現過程也基本相同,不同的是本次指紋驗證成功后進人APP進入后臺前的相應界面。

需要進一步說明的是APP如何來判斷是否已經登錄,并處于有效使用時間內。這個問題可以通過token機制來處理。token值稱為登錄令牌,用來判斷當前用戶的登錄狀態,是服務器根據用戶的信息(賬號/密碼/身份認證機制等)來生成的用于標識用戶身份的值。當用戶首次登錄成功之后,服務器端就會生成一個token值,并將其保存在服務器的數據庫中,同時將token值返回給客戶端。客戶端可以將其保存在沙盒中,作為一個公共參數。客戶端再次發送網絡請求(不一定是登錄請求)時,就會將這個token值附帶到參數中發送給服務器,服務器接收到客戶端的請求之后,會取出token值與保存在數據庫中的token值做對比,如果兩個token值相同則說明用戶登錄過并且當前用戶處于登錄狀態。如果沒有這個token值,表示沒有登錄成功。如果客戶端的token值和數據庫中保存的不一致,這說明原來的登錄信息已失效,也就是用戶的token值已超出有效時間。token不僅有有效時間,而且只要調用登錄接口并且登錄成功,都會在服務器生成新的token值,原來的token值就會失效。

4指紋識別驗證方法改進

前面提到的指紋驗證過程是APP登錄后,通過token判斷APP是否在有效使用時間內,為其加的指紋鎖,實際上APP已經登錄,所以并非真正通過指紋驗證來登錄。也可以將指紋識別集成在APP中,實現指紋識別登錄APP功能。下面將介紹在APP中如何集成指紋識別實現指紋登錄。

4.1設計思路

iPhone指紋的存儲和驗證都是通過Home鍵來完成的,APP開發者并不能獲取用戶的指紋和識別用戶的指紋。因此實現指紋登錄實際上還是針對特定設備,也就是在用帳號密碼登錄APP時,先要將其與設備綁定。不管是開啟指紋識別還是指紋登錄都是針對當前使用設備,在設計中考慮和設備進行關聯。

4.1.1開啟指紋識別

開啟指紋識別的設計思路和前述方法一致,將switch開關前的標簽改成開啟指紋登錄。然后在指紋識別驗證通過后,將APP登錄帳號密碼和設備關聯綁定,過程如下。TouchID驗證通過后,根據當前已登錄的賬號和硬件設備Token,生成設備賬號和密碼。設備的帳號和密碼生成規則可以通過不同方式,因用戶不需要直接使用此處密碼,密碼可以盡可能的長和復雜。將設備帳號密碼保存在keych-ain,以便進行指紋登錄時讀取。

設備帳號和密碼只是用于指紋登錄時讀取,與服務器數據庫保存的數據進行比較,用戶不會直接接觸和使用該賬戶密碼,所以可以設置復雜的規則。比如說賬號可以用硬件token或者原賬號加密處理后的字符串,密碼用APP密碼進行md5加密再和設備token進行某種運算等。

生成設備賬號、密碼后,將原賬號及設備賬號、密碼,加密后發送到服務端進行綁定。最后服務器端驗證原賬號及設備賬號有效后,返回相應狀態,綁定成功則完成整個TouchID(設備)綁定流程,APP開始指紋識別成功。

4.1.2指紋登錄

APP開啟了指紋識別登錄后,當用戶賬號退出后,可以使用指紋登錄。在登錄按鈕下面會添加一個“指紋登錄”按鈕(如圖5所示)。若當前設備未綁定,則不會出現“指紋登錄”按鈕。

單擊登錄界面的“指紋登錄”按鈕,調用TouchId接口檢測當前設備是否支持TouchID,如果支持則發起TouchID驗證(如圖6所示)。指紋驗證通過,說明是機主本人。讀取APP存儲在keychain中的設備賬號、密碼,調用設備登錄接口,發起登錄請求。服務器端驗證設備賬號、密碼后,返回相應狀態,通過驗證則登錄成功,完成整個TouchID登錄流程。

4.2 keychain保存用戶名、密碼

指紋登錄其實最終還是通過賬號和密碼登錄來實現,指紋通過驗證后,APP在后臺調用登錄接口,自動獲取keychain保存的賬號密碼登錄。下面將介紹keychain保存和獲取賬號和密碼的方法。

keychain是IOS為開發者提供的一種安全的保存私密信息(密碼,序列號,證書等)的方式,每個IOS程序都有一個獨立的keychain存儲。keychain是通過加密存儲的,相對于NSUserDefaults、文件保存等方式,keychain保存更為安全。因此使用keychain來保存登錄賬號密碼是一種較好的方式。

在應用里要使用keyChain,首先需要導人Security.framework,keychain的操作接口聲明在頭文件SecItem.h里。可以直接使用SecItem.h里方法操作keychain,也可以使用apple官方的兩個工具類:KeychainltemWrapper和SFHFKeychainUtils。下面將列出使用KeychainltemWrapper類實現的主要代碼。

5結束語

雖然touch ID只提供了指紋驗證,不能獲取指紋和利用指紋數據,但只要很好的利用其接口,將指紋識別技術集成到APP中,就可以實現類似于APP指紋登錄的效果。包括指紋支付,也可以采用類似的設計加以實現。這可以給用戶帶來便利,讓用戶有更好的體驗。

主站蜘蛛池模板: 狠狠干综合| 一级在线毛片| 亚洲男人的天堂久久香蕉网| 国产成人精品视频一区视频二区| 日本成人福利视频| 国产无遮挡猛进猛出免费软件| 国产区网址| 日韩精品欧美国产在线| 九色免费视频| 欧美精品伊人久久| 久久夜色精品国产嚕嚕亚洲av| 熟妇无码人妻| 亚洲天堂区| 欧美翘臀一区二区三区| 欧美全免费aaaaaa特黄在线| 97久久人人超碰国产精品| 国产欧美在线观看一区| 看国产一级毛片| 男女男免费视频网站国产| 69精品在线观看| 毛片一区二区在线看| 亚洲三级成人| 69av免费视频| 这里只有精品国产| 美女一区二区在线观看| 9966国产精品视频| 一级片一区| 精品亚洲麻豆1区2区3区| 国产清纯在线一区二区WWW| 99这里精品| 一级爱做片免费观看久久| 高清国产va日韩亚洲免费午夜电影| 国产手机在线观看| 女同国产精品一区二区| 亚洲国产理论片在线播放| 精品国产免费第一区二区三区日韩| 久久午夜夜伦鲁鲁片无码免费| 国产精品香蕉在线观看不卡| 国产精品女主播| 不卡色老大久久综合网| 国产迷奸在线看| 91视频青青草| 日韩精品高清自在线| jizz在线观看| 欧美亚洲国产精品久久蜜芽| 国产一级α片| 91精品啪在线观看国产| 久久久久夜色精品波多野结衣| 欧美成在线视频| 国内精品自在自线视频香蕉| AV网站中文| 亚洲国产成熟视频在线多多| 国产午夜看片| 色噜噜在线观看| 91黄视频在线观看| 国产一级精品毛片基地| 国产精品不卡永久免费| 国产99视频免费精品是看6| h视频在线播放| 国产精品私拍在线爆乳| 欧美亚洲国产精品第一页| 中文成人无码国产亚洲| 日本精品视频一区二区| 欧美一级片在线| 国产精品成人免费视频99| 国产麻豆精品手机在线观看| 无码国内精品人妻少妇蜜桃视频| 亚洲国产亚洲综合在线尤物| 国产成人精品视频一区二区电影| 99久久精品国产综合婷婷| 日韩免费成人| 喷潮白浆直流在线播放| 2021国产乱人伦在线播放| 99久久无色码中文字幕| 国产xx在线观看| 精品无码国产一区二区三区AV| 精品偷拍一区二区| 欧美成人精品欧美一级乱黄| 91福利在线观看视频| 99热最新在线| 久久semm亚洲国产| 欧美日韩va|