獲取輸入字元的方法和裝置
本說明書披露的多個實施例涉及網路通信技術領域,尤其涉及一種獲取輸入字元的方法及裝置。
隨著網際網路技術發展,人們越來越頻繁地使用終端(如,手機、電腦)中包括的多個應用程式(Application,簡稱APP),以滿足生活或工作的各種需求。例如,使用支付應用(如,支付寶等)進行轉帳、付款等操作,或者使用筆記應用(如,印象筆記等)記錄工作事項或生活點滴,又或者使用購物應用(如,淘寶、天猫超市等)查看購物諮詢或購買所需商品,再或者使用出行應用(如,飛猪旅行等)購買火車票、飛機票或預定飯店等。
用戶在使用APP時,難免需要輸入一些個人敏感信息。例如,在APP中註册帳號時,需要輸入手機號、密碼等信息。又例如,在APP中進行實名認證時,需要輸入姓名、身份證號、手機號、常用郵箱等信息。再例如,使用APP進行轉帳操作時,需要輸入轉出方和轉入方的銀行卡號、姓名、手機號等信息。目前,用戶在APP中所輸入的信息存在較大的被盜用的風險。因此,需要提供更安全的方式,以保證用戶在APP中所輸入信息的安全。
本說明書描述了一種獲取輸入字元的方法及裝置,透過創建與系統默認的、用於接收輸入框中的輸入字元的第二函數相對應的第一函數,以及將第一函數的第一記憶體位址與第二函數的第二記憶體位址進行互換,以使系統透過第二記憶體位址回調第一函數來獲取輸入框中的輸入字元,從而保證用戶在輸入框中所輸入字元的安全。
第一方面,提供了一種獲取輸入字元的方法。該方法包括:
響應於對輸入框進行的啟動操作,創建第一函數,所述第一函數與系統默認的、用於接收所述輸入框中的輸入字元的第二函數相對應,所述第一函數被分配有第一記憶體位址,所述第二函數被分配有第二記憶體位址;
將所述第一函數映射到所述第二記憶體位址、所述第二函數映射到所述第一記憶體位址;
響應於對輸入框進行的字元輸入操作,透過所述第二記憶體位址回調所述第一函數,並透過所述第一函數獲取所述字元輸入操作對應的輸入字元。
在一種可能的實施方式中,所述創建第一函數,包括:
隨機產生所述第一函數的名稱。
在一種可能的實施方式中,所述隨機產生所述第一函數的名稱包括:根據目前時間產生所述第一函數的名稱。
在一種可能的實施方式中,所述創建第一函數,包括:
創建第一類,所述第一類與所述第二函數所屬的系統默認類相對應;
在所述第一類中創建所述第一函數。
在一種可能的實施方式中,所述創建第一類,包括:隨機產生所述第一類的名稱。
在一種可能的實施方式中,所述將所述第一函數映射到所述第二記憶體位址、所述第二函數映射到所述第一記憶體位址,包括:
使用位址互換函數,將所述第一記憶體位址和所述第二記憶體位址進行互換。
在一種可能的實施方式中,還包括:
透過第一函數隨機產生偽裝字元;
透過所述第一記憶體位址調用所述第二函數,從而將所述偽裝字元傳遞給所述第二函數。
在一種可能的實施方式中,所述透過第一函數隨機產生偽裝字元,包括:
隨機產生第一字元;
判斷所述第一字元與所述輸入字元是否相等;
在所述第一字元與所述輸入字元相等的情況下,重新產生第一字元;
在所述第一字元與所述輸入字元不相等的情況下,將所述第一字元作為所述偽裝字元。
在一種可能的實施方式中,所述透過所述第一記憶體位址調用所述第二函數,包括:
利用自調用函數調用所述第一記憶體位址。
在一種可能的實施方式中,還包括:
將透過所述第一函數接收的輸入字元提交至伺服器。
第二方面,提供了一種字元輸入裝置。該裝置包括:
創建單元,用於響應於對輸入框進行的啟動操作,創建第一函數,所述第一函數與系統默認的、用於接收所述輸入框中的輸入字元的第二函數相對應,所述第一函數被分配有第一記憶體位址,所述第二函數被分配有第二記憶體位址;
映射單元,用於將所述第一函數映射到所述第二記憶體位址、所述第二函數映射到所述第一記憶體位址;
回調單元,用於響應於對輸入框進行的字元輸入操作,透過所述第二記憶體位址回調所述第一函數;
獲取單元,用於透過所述第一函數獲取所述字元輸入操作對應的輸入字元。
在一種可能的實施方式中,所述創建單元具體用於:
隨機產生所述第一函數的名稱。
在一種可能的實施方式中,所述創建單元具體用於:
根據目前時間產生所述第一函數的名稱。
在一種可能的實施方式中,所述創建單元具體包括:
第一創建子單元,用於創建第一類,所述第一類與所述第二函數所屬的系統默認類相對應;
第二創建子單元,用於在所述第一類中創建所述第一函數。
在一種可能的實施方式中,所述第一創建子單元具體用於:
隨機產生所述第一類的名稱。
在一種可能的實施方式中,所述映射單元具體用於:
使用位址互換函數,將所述第一函數映射到所述第二記憶體位址、所述第二函數映射到所述第一記憶體位址。
在一種可能的實施方式中,還包括:
產生單元,用於透過第一函數隨機產生偽裝字元;
調用單元,用於透過所述第一記憶體位址調用所述第二函數,從而將所述偽裝字元傳遞給所述第二函數。
在一種可能的實施方式中,所述產生單元具體用於:
隨機產生第一字元;
判斷所述第一字元與所述輸入字元是否相等;
在所述第一字元與所述輸入字元相等的情況下,重新產生第一字元;
在所述第一字元與所述輸入字元不相等的情況下,將所述第一字元作為所述偽裝字元。
在一種可能的實施方式中,所述調用單元具體用於:
利用自調用函數調用所述第一記憶體位址。
在一種可能的實施方式中,還包括:
提交單元,用於將透過所述第一函數接收的輸入字元提交至伺服器。
第三方面,提供了一種計算機可讀儲存介質,其上儲存有計算機程式。當所述計算機程式在計算機中執行時,令計算機執行上述第一方面中任一種實施方式提供的方法。
第四方面,提供了一種計算設備,包括記憶體和處理器。所述記憶體中儲存有可執行碼,所述處理器執行所述可執行碼時,實現上述第一方面中任一種實施方式提供的方法。
在本說明書提供的一種獲取輸入字元的方法中,首先,響應於對輸入框進行的啟動操作,創建用於接收輸入框中的輸入字元的第一函數,該方法與系統默認的、用於接收輸入字元的第二函數相對應。接著,將第一函數的第一記憶體位址和第二函數的第二記憶體位址進行互換。然後,響應於對輸入框進行的字元輸入操作,透過第二記憶體位址回調第一函數,並透過第一函數獲取輸入字元,而非透過系統默認的第二函數獲取輸入字元。透過採用這種方法,可以有效地防止系統默認的第二函數被監控時輸入字元被盜取的情況的發生,從而有效地保證用戶的輸入字元的安全。
進一步地,在透過第二記憶體位址回調第一函數時,還可以透過第一函數隨機產生偽裝字元,並透過第一記憶體位址調用第二函數,以使第二函數獲取該偽裝字元,從而使不法分子在監控系統默認的第二函數以截取用戶的輸入字元時,獲取到與輸入字元(用戶真正輸入的信息)不同的偽裝字元。如此,在透過創建第一函數獲取輸入字元的基礎上,使監控第二函數的不法分子截取到隨機產生的偽裝字元,實現對第一函數的掩護,從而更加有效地保證用戶輸入字元的安全。
下面結合附圖,對本說明書披露的多個實施例進行描述。
圖1為本說明書披露的一個實施例提供的一種獲取輸入字元的方法應用場景示意圖。所述方法的執行主體可以為應用程式。如圖1所示,當用戶點擊應用程式界面中的輸入框,以及在輸入框中輸入字元時,可以採用本說明書披露的多個實施例提供的字元輸入方法。
響應於對輸入框進行的點擊操作,創建用於接收輸入框中的輸入字元的新函數,該新函數與系統默認的、用於接收輸入框中的輸入字元的系統回調函數相對應。接著,將新函數的位址和系統回調函數的位址進行互換。然後,響應於對輸入框進行的字元輸入操作,仍然調用原位址,但是由於位址已經互換,透過原位址回調的將是新創建的函數,由此透過新函數獲取輸入字元,而不是透過原系統回調函數來獲取輸入字元。透過採用這種函數,可以有效地防止系統默認的回調函數被監控時輸入字元被盜取的情況的發生,從而加强了對用戶輸入信息的安全保護。
本領域技術人員知道,在面向過程的工程碼中直接採用“函數”的概念,而在面向對象的工程碼中使用“方法(method)”來描述類似概念。因此,在面向對象語言的情況下,當提及“方法”的時候,其作用類似於上述函數。
圖2為本說明書披露的一個實施例提供的一種獲取輸入字元的方法流程圖。所述方法的執行主體可以為應用程式。如圖2所示,所述方法具體包括:
步驟S210,響應於對輸入框進行的啟動操作,創建第一函數。
具體地,啟動操作可以是用戶對輸入框進行的點擊操作,還可以是其它可以使輸入框處於待輸入狀態的操作,待輸入狀態是指可以使用戶直接在該輸入框中進行字元輸入的狀態,例如,輸入框中游標的閃爍表明接下來可以直接在該輸入框中輸入字元。在一個實施例中,當跳越到某些包括至少一個輸入框的界面時,該界面中的某個輸入框(如,默認為第一個)中會自動出現游標並呈現閃爍狀態,此時可以響應於使該輸入框處於待輸入狀態的界面跳越操作,創建第一方法(也就是第一函數)。
創建的第一方法與系統默認的、用於接收輸入框中的輸入字元的第二方法(也就是第二函數)相對應,第一方法具有第一記憶體位址,第二方法具有第二記憶體位址。換而言之,第二方法是默認的系統回調方法,而第一方法是“仿照”系統回調方法而創建的新方法。下面對這兩個方法的運行環境和新方法的創建過程進行描述。
可以理解,作業系統(Operating System,簡稱OS)是管理和控制終端軟體與軟體資源的程式,是直接運行在終端上的最基本的系統軟體,任何其他軟體都必須在作業系統(如,Windows系統,或安卓(Android)系統,或iOS系統等)的支持下才能運行。相應地,在編寫應用程式(為了提高特定處理效率的程式總稱為“應用程式”,如支付寶應用)的過程中,需要利用作業系統提供的功能(如,基本的輸入輸出部分的程式)進行編寫。
基於上述內容,應用程式中所涉及的系統默認的、用於接收輸入框中的輸入字元的第二方法,可以是基於OS提供的基本的輸入輸出部分的程式編寫而成的。而且,第二方法可以為由函數名稱(如,textChange)、變量類型(如,String)、變量名稱(如,text)組成的系統默認函數(如,textChange(String text))。
此外,用戶在打開終端中的應用程式(如,對該應用的圖示進行點擊操作)時,該應用程式需要被加載到記憶體後才能運行。任何的程式(如,C語言printf(“你好”))都是指令(如,printf)和資料(如,你好)的組合體,而記憶體(如,使用動態隨機存取記憶體(Dynamic Random Access Memory,簡稱DRAM)晶片的主記憶體)是終端中保存命令和資料的場所,透過位址(如,二進制編碼為01001001的位址)對其儲存的內容進行標記和指定。相應地,當程式中包括的指令和資料被加載到記憶體中時,會被分配有相應的記憶體位址。
對於本說明書實施例中涉及的第二方法(也就是由指令和資料組成的函數),當其被加載到記憶體中時,會具有相應的記憶體位址,也就是前述內容中提及的第二方法所具有的第二記憶體位址。而第一方法具有的第一記憶體位址,為在記憶體中創建第一方法時,為第一方法所分配的記憶體位址。
在一個實施例中,創建第一方法,可以包括:創建第一類,且該類與第二方法所屬的系統默認類相對應;接著,在第一類中創建與第二方法對應的第一方法。在一個例子中,可以利用系統默認類所繼承的類(如,所繼承的類可以為超級父類)創建第一類,以使第一類中可以創建與第二方法相對應的第一方法。
第一方法與第二方法相對應,是指第一方法與第二方法的功能相同,均用於接收輸入框中的輸入字元。由此,第一方法與第二方法具有相同的結構,例如,可以具有相同的參數類型(如,String)、變量(如,text),但具有不同的方法名稱(如,第一方法的名稱可以為exchangeMethod,第二方法的名稱可以為textChange)。
在一個實施例中,創建第一類,可以包括:隨機產生第一類的名稱。在一個例子中,隨機產生第一類的名稱,可以包括:採用隨機演算法產生第一類的名稱。其中隨機演算法採用了一定程度的隨機性作為其邏輯的一部分,該演算法通常使用隨機位元作為輔助輸入來指導其行為,而隨機位元可以根據多個維度(如,時間、用戶名等)中的至少一個維度來確定。例如,隨機產生的第一類的名稱可以為“Exchange‘ID’Class”(如,目前用戶的用戶名為Gloria,則第一類的名稱可以為ExchangeGloriaClass)。
類似地,在一個實施例中,創建第一方法,可以包括:隨機產生第一方法的名稱。在一個例子中,可以根據多個維度(如,時間、用戶名等)中的至少一個維度來產生第一方法的名稱。例如,隨機產生的第一方法的名稱可以為“exchange‘time’Method”(如,目前時間為11:10am,則第一方法的名稱可以為exchange1110Method)。
需要說明的是,上述對第一方法和第一類的創建均為動態創建。動態創建類和方法是指利用程式語言運行時間(run time)特性,動態在記憶體中創建私有類(也就是非作業系統中存在的默認類)和方法。其中,運行時間特性是指由動態編程語言(如,java、Objective-c)編寫的程式在運行時間可以改變其結構(例如,可以引進新的函數或者删除已有的函數等)的特性。
此外,第一類和系統默認類的相同之處在於,這兩個類繼承了相同的父類,以及在第一類和系統默認類中創建了具有對應關係的第一方法和第二方法。而兩者的不同之處在於,第一類中可以只包括第一方法,而系統默認類中還可以包括除第二方法以外的其他方法。
在步驟S210中創建第一方法後,接著,在步驟S220,將第一函數映射到第二記憶體位址、第二函數映射到第一記憶體位址。也就是,將第一方法的第一記憶體位址和第二方法的第二記憶體位址進行互換。
在一個實施例中,可以使用位址互換函數,將第一記憶體位址(在編程語言中可以實現為第一方法的名稱)和第二記憶體位址(在編程語言中可以實現為第二方法的名稱)進行互換。
在一個例子中,第一方法和第二方法的名稱分別為exchangeMethod和textChange,位址互換函數的名稱可以為method_exchangeImplementations。據此,可以使用包括語句“method_exchangeImplementations(textChange,exchangeMethod);”的程式實現第一方法的第一記憶體位址和第二方法的第二記憶體位址的互換。
步驟S230,響應於對輸入框進行的字元輸入操作,透過第二記憶體位址回調第一函數,並透過第一函數獲取輸入字元。
具體地,由於第二記憶體位址是系統默認的回調方法的位址,因此當用戶在輸入框中進行字元輸入操作(如,在輸入框中輸入字元或删除字元)時,仍然默認地按照原位址進行調用,即仍然訪問第二記憶體位址,但是由於第一方法和第二方法的位址已經互換,目前第二記憶體位址對應的是新創建的第一方法,因此透過第二記憶體位址回調的是第一方法,由此透過第一方法獲取了輸入框中的輸入字元,而非透過系統默認的第二方法獲取輸入框中的輸入字元。如此,可以有效地防止系統默認的第二方法被監控時輸入字元被盜取的情況的發生。
在一個實施例中,響應於對輸入框進行的字元輸入的每個操作,相應地透過第二記憶體位址回調一次第一方法。也就是說,輸入框中每接收一個字元,則相應地透過第二記憶體位址回調一次第一方法。在一個例子中,首先,用戶在輸入框中輸入一個字元(如,‘a’),則觸發應用程式透過第二記憶體位址回調第一方法。接著,用戶再在輸入框中輸入一個字元(如,‘_’),則再次觸發應用程式透過第二記憶體位址回調第一方法。
需要說明的是,在步驟S230之後,還可以包括:將透過第一方法獲取的字元顯示在輸入框中。在一個實施例中,用戶每在輸入框中輸入一個字元,就觸發一次對第一方法的回調,並透過第一方法獲取該字元,以及將該字元顯示在輸入框中。當然,可以直接顯示所獲取的字元,也可以對字元進行脫敏處理(是指對敏感資料進行變形處理)後再進行顯示。例如,用戶在輸入鍵盤中點擊字元“1”,則透過第一方法獲取字元“1”後,在輸入框中直接顯示字元“1”。又例如,用戶在輸入鍵盤中點擊字元“2”,則透過第一方法獲取字元“2”後,在輸入框中顯示“*”,以防止因他人窺視而導致字元信息的洩露。
此外,在步驟S230之後,還可以包括:將透過第一方法獲取的輸入字元提交至伺服器。在一個實施例中,將透過第一方法獲取的輸入字元提交至伺服器,可以包括:當輸入框中接收的輸入字元的個數達到預定個數時,將這些輸入字元提交至伺服器。或者,根據接收的提交指令,將透過第一方法獲取的輸入字元提交至伺服器。
在一個例子中,輸入字元的預定個數,可以由該輸入框所對應的輸入信息的類別(如,密碼、身份證號、銀行卡號等)所確定。例如,用於接收密碼信息的輸入框,其所對應的輸入字元的預定個數可以為6。又例如,用於接收身份證號的輸入框,其所對應的輸入字元的預定個數可以為18。再例如,用於接收交通銀行的銀行卡號的輸入框,其所對應的輸入字元的預定個數可以為17。
在一個例子中,當輸入框中接收的輸入字元的個數達到預定個數時,可以自動觸發應用程式將接收的輸入字元提交至伺服器。
在另一個例子中,可以根據接收的提交指令(如,該提交指令可以為用戶透過點擊應用界面中的提交按鍵所輸入的指令),將透過第一方法接收的輸入字元(如,用戶姓名“王立民”)提交至伺服器。
由上可知,在本申請說明書披露的多個實施例提供的獲取輸入字元的方法中,首先,響應於對輸入框進行的啟動操作,創建用於接收輸入框中的輸入字元的第一函數,該方法與系統默認的、用於接收輸入字元的第二函數相對應。接著,將第一函數的第一記憶體位址和第二函數的第二記憶體位址進行互換。然後,響應於對輸入框進行的字元輸入操作,透過第二記憶體位址回調第一函數,並透過第一函數獲取輸入字元,而非透過系統默認的第二函數獲取輸入字元。透過採用這種方法,可以有效地防止系統默認的第二函數被監控時輸入字元被盜取的情況的發生,從而有效地保證用戶的輸入字元的安全。
圖3為本說明書披露的一個實施例提供的另一種獲取輸入字元的方法流程圖。所述方法的執行主體可以為應用程式。如圖3所示,所述方法具體包括:
步驟S310,響應於對輸入框進行的啟動操作,創建第一函數。
步驟S320,將第一函數映射到第二記憶體位址、第二函數映射到第一記憶體位址。
步驟S330,響應於對輸入框進行的字元輸入操作,透過第二記憶體位址回調第一函數,並透過第一函數獲取輸入字元。
對步驟S310-步驟S330的描述,可以參見上述對步驟S210-步驟S230的描述,在此不作贅述。
步驟S340,透過第一函數隨機產生偽裝字元。
具體地,透過第一方法(也就是第一函數)隨機產生偽裝字元,可以包括:將隨機產生的字元直接作為偽裝字元。或者,可以包括:隨機產生第一字元,並判斷第一字元與輸入字元是否相等。在第一字元與輸入字元相等的情況下,重新產生第一字元;而在第一字元與輸入字元不相等的情況下,將第一字元作為偽裝字元。
對於這兩種方式,因隨機產生的偽裝字元具有隨機性,隨機產生的多個偽裝字元與用戶輸入的完整信息中包括的多個輸入字元完全相同的概率較低,所以將隨機產生的字元作為偽裝字元的方式,通常可以達到較好的偽裝效果。另外,對於首先判斷隨機產生的第一字元與輸入字元是否相等的方式,可以確保將與輸入字元不相等的第一字元作為偽裝字元,從而可以達到最全面、最佳的偽裝效果。
在一個例子中,假定隨機產生的字元為“1”,則可以直接將該字元作為偽裝字元。
在一個例子中,假定輸入字元為“1”,隨機產生的第一字元為“2”。據此可以判斷出第一字元與輸入字元不相等,並將第一字元“2”作為偽裝字元。
在另一個例子中,假定輸入字元為“1”,隨機產生的第一字元為“1”。據此可以判斷出第一字元與輸入字元相等,並重新產生第一字元。假定重新隨機產生的第一字元為“2”,據此可以判斷出第一字元與輸入字元不相等,並將第一字元“2”作為偽裝字元。
在步驟S340中隨機產生偽裝字元後,接著,在步驟S350,透過第一記憶體位址調用第二函數,從而將偽裝字元傳遞給第二函數。
在一個實施例中,透過第一記憶體位址調用第二方法(也就是第二函數),可以包括:利用自調用函數(如,self.)調用第一記憶體位址,進而透過第一記憶體位址調用第二方法。需要說明的是,自調用函數是對自身方法進行調用的函數。在本實施例中,在第一方法中執行自調用函數,於是自調用函數會自動地調用所屬方法的默認位址,即第一方法的第一記憶體位址。然而,如前所述,第一記憶體位址和第二記憶體位址已經互換,但自調用函數無法獲知該互換過程,因此,它按照第一記憶體位址進行調用時,實際調用的是第二方法,由此實現將偽裝字元傳遞給第二方法。
因在透過創建第一方法獲取輸入字元時,系統默認的第二方法可能存在長期不被調用的情況,由此可能引起不法分子(如,透過植入釣魚程式或監聽程式,在系統默認的第二方法處設置斷點,以截取用戶的輸入字元的人員)的懷疑,進而存在查找到創建的第一方法,轉而對第一方法進行監控的風險。
前述在步驟S340中隨機產生偽裝字元,以及在步驟S450中透過第一記憶體位址調用第二方法,以使第二方法獲取偽裝字元,可以使不法分子在監控系統默認的第二方法以截取用戶的輸入字元時,仍然可以監聽到第二方法被調用,仍然可以獲得到字元,但是獲取到却是與輸入字元(用戶真正輸入的信息)不同的偽裝字元。如此,在透過創建第一方法獲取輸入字元的基礎上,使監控第二方法的不法分子截取到隨機產生的偽裝字元,實現對第一方法的掩護,從而更加有效地保證用戶輸入字元的安全。
需要說明的是,不同輸入框可以用於接收具有不同類別(如,姓名、身份證號、密碼、生日、暱稱、銀行卡號等)的輸入信息。不同類別的輸入信息往往具有不同的敏感度,也就是說,有的類別(如,身份證號、密碼)所對應的輸入信息的敏感度較高,如果這些輸入信息被洩露會給用戶造成較大的安全隱憂(如,不法分子可以利用用戶的身份證號進行貸款等),而有的類別(如,生日、暱稱)所對應的輸入信息的敏感度較低。
對於具有較高敏感度的輸入信息所對應的輸入字元,在步驟S330透過第一方法獲取該輸入字元後,可以繼續執行步驟S340和步驟S350。而對於具有較低敏感度的輸入信息所對應的輸入字元,在步驟S330透過第一方法獲取該輸入字元後,可以不執行步驟S340和步驟S350,也就是不需要產生偽裝字元以及讓第二方法獲取偽裝字元,而是直接透過第一記憶體位址調用第二方法,並將輸入字元(用戶輸入的真實信息)傳遞給第二方法。
相應地,在步驟S330之後,還可以包括:判斷是否需要產生輸入字元的偽裝字元。在一個實施例中,可以透過輸入框的標記(tag)值來判斷。其中輸入框的標記值與輸入字元的類別相對應,例如,標記值為1001、1002和1003的輸入框對應的類別分別為姓名、身份證號和密碼。
判斷是否需要產生輸入字元的偽裝字元,可以包括:當輸入框的標記值屬於預設標記值集合時,則需要產生該輸入字元的偽裝字元,也就是需要執行步驟S340和步驟S350。當輸入框的標記值不屬於預設標記值集合時,則直接透過第一記憶體位址調用第二方法,並將該輸入字元傳遞給第二方法。其中,預設標記值集合可以根據標記值所對應的輸入信息的類別的敏感度確定。
接下來,結合圖4,對本說明書多個實施例提供的獲取輸入字元的交互過程進行示例性說明。如圖4所示,所述交互過程可以包括:
步驟S410,用戶對APP中的輸入框進行啟動。
步驟S420,APP創建用於接收輸入框中輸入字元的第一方法,該方法具有第一記憶體位址,且與系統默認的具有第二記憶體位址的第二方法相對應。
步驟S430,將第一方法的第一記憶體位址和第二方法的第二記憶體位址進行互換。
步驟S440,用戶在輸入框中輸入字元。
步驟S450,透過第二記憶體位址回調第一方法,並透過第一方法獲取用戶所輸入的輸入字元。
步驟S460,透過第一方法隨機產生偽裝字元。
步驟S470,透過第一記憶體位址調用第二方法,從而將偽裝字元傳遞給第二方法。
由上可知,在本申請說明書披露的多個實施例提供的獲取輸入字元的方法中,首先,響應於對輸入框進行的啟動操作,創建用於接收輸入框中的輸入字元的第一函數,該函數與系統默認的、用於接收輸入字元的第二函數相對應。接著,將第一函數的第一記憶體位址和第二函數的第二記憶體位址進行互換。然後,響應於對輸入框進行的字元輸入操作,透過第二記憶體位址回調第一函數,並透過第一函數獲取輸入字元,而非透過系統默認的第二函數獲取輸入字元。透過採用這種函數,可以有效地防止系統默認的第二函數被監控時輸入字元被盜取的情況的發生,從而有效地保證用戶的輸入字元的安全。
進一步地,在透過第二記憶體位址回調第一函數時,還可以透過第一函數隨機產生偽裝字元,並透過第一記憶體位址調用第二函數,以使第二函數獲取該偽裝字元,從而使不法分子在監控系統默認的第二函數以截取用戶的輸入字元時,獲取到與輸入字元(用戶真正輸入的信息)不同的偽裝字元。如此,在透過創建第一函數獲取輸入字元的基礎上,使監控第二函數的不法分子截取到隨機產生的偽裝字元,實現對第一函數的掩護,從而更加有效地保證用戶輸入字元的安全。
與上述字元輸入方法對應地,本說明書披露的多個實施例還提供一種獲取輸入字元的裝置,如圖5所示,該裝置包括:
創建單元510,用於響應於對輸入框進行的啟動操作,創建第一函數,第一函數與系統默認的、用於接收輸入框中的輸入字元的第二函數相對應,第一函數具有第一記憶體位址,第二函數具有第二記憶體位址;
映射單元520,用於將第一函數映射到第二記憶體位址、第二函數映射到第一記憶體位址;
回調單元530,用於響應於對輸入框進行的字元輸入操作,透過第二記憶體位址回調第一函數;
獲取單元540,用於透過第一函數獲取字元輸入操作對應的輸入字元。
在一種可能的實施方式中,創建單元510具體用於:
隨機產生第一函數的名稱。
在一種可能的實施方式中,創建單元510具體用於:
根據目前時間產生第一函數的名稱。
在一種可能的實施方式中,創建單元510具體包括:
第一創建子單元511,用於創建第一類,第一類與第二函數所屬的系統默認類相對應;
第二創建子單元512,用於在第一類中創建第一函數。
在一種可能的實施方式中,第一創建子單元511具體用於:
隨機產生第一類的名稱。
在一種可能的實施方式中,映射單元520具體用於:
使用位址互換函數,將第一記憶體位址和第二記憶體位址進行互換。
在一種可能的實施方式中,還包括:
產生單元550,用於透過第一函數隨機產生偽裝字元;
調用單元560,用於透過第一記憶體位址調用第二函數,從而將偽裝字元傳遞給第二函數。
在一種可能的實施方式中,產生單元550具體用於:
隨機產生第一字元;
判斷第一字元與輸入字元是否相等;
在第一字元與輸入字元相等的情況下,重新產生第一字元;
在第一字元與輸入字元不相等的情況下,將第一字元作為偽裝字元。
在一種可能的實施方式中,調用單元560具體用於:
利用自調用函數調用第一記憶體位址。
在一種可能的實施方式中,還包括:
提交單元570,用於將透過第一函數接收的輸入字元提交至伺服器。
由上可知,採用本申請說明書披露的多個實施例提供的獲取輸入字元的裝置中,創建單元510響應於對輸入框進行的啟動操作,創建用於接收輸入框中的輸入字元的第一函數,該函數與系統默認的、用於接收輸入字元的第二函數相對應。映射單元520將第一函數的第一記憶體位址和第二函數的第二記憶體位址進行互換。調用單元530響應於對輸入框進行的字元輸入操作,透過第二記憶體位址回調第一函數,獲取單元540透過第一函數獲取輸入字元,而非透過系統默認的第二函數獲取輸入字元。透過採用這種裝置,可以有效地防止系統默認的第二函數被監控時輸入字元被盜取的情況的發生,從而有效地保證用戶的輸入字元的安全。
進一步地,產生單元550透過第一函數隨機產生偽裝字元,調用單元560透過第一記憶體位址調用第二函數,以使第二函數獲取該偽裝字元,從而使不法分子在監控系統默認的第二函數以截取用戶的輸入字元時,獲取到與輸入字元(用戶真正輸入的信息)不同的偽裝字元。如此,在透過創建第一函數獲取輸入字元的基礎上,使監控第二函數的不法分子截取到隨機產生的偽裝字元,實現對第一函數的掩護,從而更加有效地保證用戶輸入字元的安全。
以上所述的具體實施方式,對本說明書披露的多個實施例的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本說明書披露的多個實施例的具體實施方式而已,並不用於限定本說明書披露的多個實施例的保護範圍,凡在本說明書披露的多個實施例的技術方案的基礎之上,所做的任何修改、等同替換、改進等,均應包括在本說明書披露的多個實施例的保護範圍之內。
S210‧‧‧步驟
S220‧‧‧步驟
S230‧‧‧步驟
S310‧‧‧步驟
S320‧‧‧步驟
S330‧‧‧步驟
S340‧‧‧步驟
S350‧‧‧步驟
500‧‧‧獲取輸入字元裝置
510‧‧‧創建單元
511‧‧‧第一創建子單元
512‧‧‧第二創建子單元
520‧‧‧映射單元
530‧‧‧回調單元
540‧‧‧獲取單元
550‧‧‧產生單元
560‧‧‧調用單元
570‧‧‧提交單元
為了更清楚地說明本說明書披露的多個實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本說明書披露的多個實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其它的附圖。
圖1為本說明書披露的一個實施例提供的一種獲取輸入字元的方法應用場景示意圖;
圖2為本說明書披露的一個實施例提供的一種獲取輸入字元的方法流程圖;
圖3為本說明書披露的一個實施例提供的另一種獲取輸入字元的方法流程圖;
圖4為本說明書披露的一個實施例提供的一種獲取輸入字元的交互示意圖;
圖5為本說明書披露的一個實施例提供的一種獲取輸入字元的裝置的結構圖。