本申請涉及信息安全技術領域,尤其涉及一種安全輸入的實現(xiàn)方法和裝置。
背景技術:
隨著智能終端行業(yè)的飛速發(fā)展,大量的觸屏設備進入到人們的日常生活中去,越來越多的事務可以在終端上,只需要用戶動動手指就可以輕松完成,如銀行轉賬、預定機票、購買商品等等。用戶在實現(xiàn)這些功能的時候往往需要在終端上輸入身份證號碼、銀行密碼等關鍵信息,這些信息的安全輸入對用戶來說至關重要。
在一些應用程序中,當用戶輸入密碼等關鍵信息時,由終端生成按鍵隨機排列的虛擬鍵盤,用戶點擊虛擬鍵盤上的按鍵,終端將用戶點擊的字符加密后發(fā)送給服務器。這種方式能夠避免采用固定鍵位的虛擬鍵盤時,因用戶在某些鍵位多次點擊造成觸摸屏上某些部位磨損較為嚴重,導致用戶的關鍵信息易于被社工方式攻破。但是,這種方式至少需要將用戶輸入的關鍵信息暫存在本地并上傳給服務器,在暫存期間和上傳過程中仍然可能被惡意軟件截取而導致關鍵信息泄露。
技術實現(xiàn)要素:
有鑒于此,本申請?zhí)峁┮环N安全輸入的實現(xiàn)方法,應用在客戶端,包括:
根據客戶端算法生成虛擬鍵盤的按鍵布局,并顯示給用戶;
記錄用戶在虛擬鍵盤上輸入時的點擊位置;
將輸入相關參數(shù)上傳給服務器;所述輸入相關參數(shù)包括用戶在虛擬鍵盤上的點擊位置,供服務端采用服務端算法還原出同樣的按鍵布局,根據上傳的點擊位置獲取用戶的輸入內容;所述服務端算法與客戶端算法相同或相對應。
本申請?zhí)峁┑囊环N安全輸入的實現(xiàn)方法,應用在服務端,包括:
接收客戶端上傳的輸入相關參數(shù);所述輸入相關參數(shù)包括用戶在虛擬鍵盤上的點擊位置;所述虛擬鍵盤的按鍵布局由客戶端根據客戶端算法生成;
采用服務端算法還原出同樣的按鍵布局,根據所述點擊位置獲取用戶的輸入內容;所述服務端算法與客戶端算法相同或相對應。
本申請還提供了一種安全輸入的實現(xiàn)裝置,應用在客戶端,包括:
客戶端布局生成單元,用于根據客戶端算法生成虛擬鍵盤的按鍵布局,并顯示給用戶;
點擊位置記錄單元,用于記錄用戶在虛擬鍵盤上輸入時的點擊位置;
輸入參數(shù)上傳單元,用于將輸入相關參數(shù)上傳給服務器;所述輸入相關參數(shù)包括用戶在虛擬鍵盤上的點擊位置,供服務端采用服務端算法還原出同樣的按鍵布局,根據上傳的點擊位置獲取用戶的輸入內容;所述服務端算法與客戶端算法相同或相對應。
本申請?zhí)峁┑囊环N安全輸入的實現(xiàn)裝置,應用在服務端,包括:
輸入參數(shù)接收單元,用于接收客戶端上傳的輸入相關參數(shù);所述輸入相關參數(shù)包括用戶在虛擬鍵盤上的點擊位置;所述虛擬鍵盤的按鍵布局由客戶端根據客戶端算法生成;
輸入內容獲取單元,用于采用服務端算法還原出同樣的按鍵布局,根據所述點擊位置獲取用戶的輸入內容;所述服務端算法與客戶端算法相同或相對應。
由以上技術方案可見,本申請的實施例中,客戶端采用客戶端算法生成虛擬鍵盤的按鍵布局,并且將用戶在虛擬鍵盤上的點擊位置上傳給服務端,由服務端根據與客戶端算法相同或相對應的服務端算法還原按鍵布局后得到 用戶的輸入內容,從而避免了因客戶端保存的用戶輸入內容被訪問或上傳給服務端的報文被截取導致的關鍵信息泄露,提高了網絡應用的安全性。
附圖說明
圖1是本申請實施例中一種應用在客戶端,安全輸入的實現(xiàn)方法的流程圖;
圖2是本申請實施例中一種應用在服務端,安全輸入的實現(xiàn)方法的流程圖;
圖3是本申請應用示例中客戶端的安全輸入實現(xiàn)方法流程圖;
圖4是本申請應用示例中服務端的安全輸入實現(xiàn)方法流程圖;
圖5是本申請實施例所運行的設備的一種硬件結構圖;
圖6是本申請實施例中一種應用在客戶端,安全輸入的實現(xiàn)裝置的邏輯結構圖;
圖7是本申請實施例中一種應用在服務端,安全輸入的實現(xiàn)裝置的邏輯結構圖。
具體實施方式
本申請的實施例提出一種新的安全輸入的實現(xiàn)方法,在客戶端和服務端通過相同或相對應的算法來生成同樣按鍵布局的虛擬鍵盤,客戶端記錄并向服務端上傳用戶在虛擬鍵盤上輸入時的點擊位置,使得無需使用用戶的輸入內容本身,即可實現(xiàn)關鍵信息到服務端的上傳,減少了關鍵信息被截取的可能性,提高了關鍵信息的安全性,從而解決現(xiàn)有技術中存在的問題。
本申請的實施例中,客戶端與服務端之間通過網絡可相互訪問。其中,客戶端所在的設備可以是手機、平板電腦、pc(personalcomputer,個人電腦)、筆記本等終端,也可以是服務器;服務端可以運行在一個物理或邏輯服務器上,也可以是由兩個或兩個以上分擔不同職責的物理或邏輯服務器、相互協(xié)同來實現(xiàn)本申請實施例中服務端的各項功能。本申請實施例對客戶端 和服務端所在設備的種類,以及客戶端與服務端之間通信網絡的類型、協(xié)議等均不做限定。
本申請實施例中,安全輸入的實現(xiàn)方法應用在客戶端的流程如圖1所示,應用在服務端的流程如圖2所示。
在客戶端,步驟110,根據客戶端算法生成虛擬鍵盤的按鍵布局,并顯示給用戶。
客戶端算法可以在安裝客戶端時預置在客戶端內,也可以由客戶端在需要進行安全輸入時從服務端下載,本申請的實施例不做限定。
當客戶端需要用戶輸入關鍵信息時,調用客戶端算法生成虛擬鍵盤的按鍵布局,并按照生成的按鍵布局顯示虛擬鍵盤,供用戶輸入時使用。
在客戶端,步驟120,記錄用戶在虛擬鍵盤上輸入時的點擊位置。
當用戶通過點擊虛擬鍵盤上的按鍵進行輸入操作時,客戶端可以從所在設備的操作系統(tǒng)獲得用戶點擊點在屏幕上的坐標。根據客戶端在屏幕上顯示虛擬鍵盤的區(qū)域,可以計算出用戶在虛擬鍵盤上的點擊位置。用戶在虛擬鍵盤上的點擊位置可以用點擊點在虛擬鍵盤上的坐標來表示;對虛擬鍵盤在屏幕上的顯示面積可變的情況,也可以用點擊點在虛擬鍵盤上的比例坐標來表示點擊位置。
在客戶端,步驟130,將輸入相關參數(shù)上傳給服務器;輸入相關參數(shù)包括用戶在虛擬鍵盤上的點擊位置,供服務端采用與客戶端算法相同或相對應的服務端算法還原出同樣的按鍵布局,根據上傳的點擊位置獲取用戶的輸入內容。
在服務端,步驟210,接收客戶端上傳的輸入相關參數(shù)。
在服務端,步驟220,采用服務端算法還原出同樣的按鍵布局,根據輸入相關參數(shù)中的點擊位置獲取用戶的輸入內容。
客戶端將記錄的用戶在虛擬鍵盤上的點擊位置作為輸入相關參數(shù),上傳給服務端。服務端接收客戶端上傳的輸入相關參數(shù),通過輸入相關參數(shù)和服務端算法來得到用戶的輸入內容。任何能夠生成符合應用場景需要的按鍵布 局的算法都可以用來作為相同的客戶端算法和服務端算法,任何能夠生成相同按鍵布局的不同算法都可以作為相對應的客戶端算法和服務端算法,本申請實施例不做限定。
根據客戶端算法與服務端算法的具體實現(xiàn),輸入相關參數(shù)中可以只包括用戶在虛擬鍵盤上的點擊位置,也可以還包括服務端算法用來還原用戶在客戶端進行輸入操作時所使用的按鍵布局所需的其他參數(shù)。
例如,客戶端和服務端同步進行計時,客戶端與服務端采用相同的算法,按照當前計時時間來生成按鍵布局,預定時間段內的計時時間對應于相同的按鍵布局;則客戶端算法與服務端算法在每個預定時間段內都會生成同樣的按鍵布局,并在進入下一個預定時間段時改變按鍵布局。這種實現(xiàn)方式中,客戶端可以只向服務端上傳用戶在虛擬鍵盤上的點擊位置。
再如,客戶端與服務端采用同樣的算法,該算法以一個到多個由客戶端確定的算法變量值為輸入來生成按鍵布局。這種實現(xiàn)方式中,客戶端需要將生成用戶使用的按鍵布局時所采用的算法變量值作為輸入相關參數(shù),上傳給服務端。這樣,服務端將接收的算法變量值輸入到服務端算法中,還原出用戶使用的按鍵布局,以便進一步根據輸入相關參數(shù)中的點擊位置獲取用戶的輸入內容。例如,客戶端可以采用時間戳來作為算法變量值,在需要進行關鍵信息輸入時,客戶端獲取當前的時間戳,以當前的時間戳為客戶端算法的輸入,生成虛擬鍵盤的按鍵布局;為了使服務端能夠生成同樣的按鍵布局,客戶端要將生成虛擬鍵盤的按鍵布局時采用的時間戳作為輸入相關參數(shù)上傳給服務端。
一個例子中,在需要用戶輸入關鍵信息時,客戶端獲取當前的時間戳,以當前的時間戳作為預定偽隨機數(shù)算法的種子,根據預定的偽隨機數(shù)算法生成客戶端隨機數(shù)k(k為整數(shù));把虛擬鍵盤上的按鍵組成按鍵集合,其中包括n(n為自然數(shù))個按鍵;設k對i取模得m(即:m=k%i),在按鍵集合中取出第m個按鍵,將其依序添加到布局序列中,重復本步驟將i從n遞減到0,這樣按鍵集合中的n個按鍵將以某個順序排列在布局序列中;根據 布局序列中按鍵的順序,生成虛擬鍵盤的按鍵布局,例如可以將布局序列中的按鍵按順序逐個放置在虛擬鍵盤的鍵位上,形成按鍵布局。
上述例子中,對應的,在服務端,從客戶端上傳的輸入相關參數(shù)中提取出時間戳,以客戶端上傳的時間戳作為預定偽隨機數(shù)算法(與客戶端的預定偽隨機數(shù)算法相同)的種子,生成服務端隨機數(shù)k;將虛擬鍵盤上的按鍵組成按鍵集合,其中包括n個按鍵;取出按鍵集合中第(k%i)個按鍵,將該按鍵順序添加到布局序列中,重復本步驟將i從n遞減到0;根據布局序列中按鍵的順序,還原虛擬鍵盤的按鍵布局,按照上傳的點擊位置得到用戶的輸入內容。
客戶端可以在用戶每次在虛擬鍵盤上完成一次點擊輸入后,向服務端上傳一次輸入相關參數(shù);在這種情況下,在整個關鍵信息的輸入過程中,客戶端可以循環(huán)執(zhí)行步驟120和步驟130,服務端可以循環(huán)執(zhí)行步驟210和步驟220??蛻舳艘部梢栽谟脩敉瓿烧麄€關鍵信息的輸入后,一次性向服務端上傳包括多次點擊位置的輸入相關參數(shù)。
一些虛擬鍵盤在用戶點擊某個按鍵后會進行鍵盤輸入反饋,將該按鍵的內容(即輸入字符)顯示在屏幕上。惡意的錄屏軟件可以通過操作系統(tǒng)獲取并記錄屏幕顯示的內容,來窺知用戶的關鍵信息。本申請的實施例中,可以在收到用戶在虛擬鍵盤上的點擊輸入后,不顯示用戶點擊輸入的按鍵內容,以避免用戶的關鍵信息被錄屏軟件截取。
如果客戶端生成一種按鍵布局后,用戶在采用該按鍵布局的虛擬鍵盤上輸入整個關鍵信息,則由于在輸入關鍵信息的過程中鍵位固定,點擊位置仍然會暴露關鍵信息的一些特征,如用戶的密碼中相同的字符有多少個,第幾位和第幾位相同等等。
為了更大程度的為用戶提供保護,客戶端可以在記錄用戶在虛擬鍵盤上一次輸入操作的點擊位置后,根據客戶端算法更新虛擬鍵盤的按鍵布局,并顯示給用戶供其進行下一次輸入操作;其中,輸入操作指的是用戶對虛擬鍵盤上按鍵有效區(qū)域的點擊操作,即用戶的點擊點在虛擬鍵盤的按鍵上而不是 其他地方。這樣,用戶每輸入一個字符,虛擬鍵盤的按鍵布局就會更新一次,使得整個關鍵信息對應的點擊位置序列不會透露輸入內容的特征。
對應的,在服務端,在根據按鍵布局獲取對應于用戶一個點擊位置的輸入內容后,采用服務端算法更新虛擬鍵盤的按鍵布局,并根據更新后的按鍵布局來獲取對應于用戶下一個點擊位置的輸入內容。需要說明的是,在客戶端以算法變量值為輸入生成按鍵布局的情形下,客戶端可以向服務端上傳對應于每個點擊位置的算法變量值,服務端依次使用一組對應的算法變量值和點擊位置來得到一個輸入字符,最終得到用戶的輸入序列;而在一些客戶端算法和服務端算法的實現(xiàn)中,可以根據初始的算法變量值迭代生成相同的算法變量值序列(如以初始的算法變量值為種子的偽隨機數(shù)算法),在這種情況下,客戶端可以向服務端上傳初始的算法變量值,由服務端自行進行迭代運算,得到對應于后續(xù)點擊位置的算法變量值,請參見本申請應用示例中給出的方案。
可見,本申請的實施例中,在客戶端和服務端分別采用相同或相對應的客戶端算法和服務端算法,來生成同樣的虛擬鍵盤按鍵布局,客戶端采集用戶在虛擬鍵盤上的點擊位置上傳給服務端,服務端按照按鍵布局和點擊位置來獲得用戶的輸入內容,這樣,用戶的輸入內容既不需要在客戶端本地保存,也不需要向服務端上傳,避免了因客戶端本地信息被盜取、或客戶端上傳給服務端的信息被截取給用戶關鍵信息帶來的威脅,提高了應用和網絡的安全性。
在本申請的一個應用示例中,客戶端在需要用戶輸入密碼時向用戶顯示密碼鍵盤,按鍵包括從0到9的10個數(shù)字和確定按鍵;當用戶點擊確定按鍵時,密碼輸入完成。
客戶端的處理流程如圖3所示。
步驟301,獲取當前的時間戳timestamp,將timestamp作為隨機數(shù)種子。
步驟302,運行預定的偽隨機數(shù)算法,生成一個整數(shù)隨機數(shù)k。
步驟303,生成按鍵集合:{0,1,2,3,4,5,6,7,8,9},按鍵集合包括10個元素;生成空的布局序列,令i=10。本應用示例中確定按鍵將位于虛擬鍵盤上的固定位置,其他10個數(shù)字按鍵在虛擬鍵盤上有預定鍵位,但鍵值將根據隨機數(shù)k來確定。
步驟304,計算k對i取模的結果m,即m=(k%i)。
步驟305,刪除按鍵集合中第m個元素,將第m個元素添加到布局序列的最后。
步驟306,判斷i是否等于0,如果是,執(zhí)行步驟307;如果否,將i減1,轉步驟304。
步驟307,按照布局序列中各元素的順序設置虛擬鍵盤上數(shù)字按鍵的鍵值,生成按鍵布局,向用戶顯示虛擬鍵盤,接收用戶的點擊操作。
步驟308,判斷用戶點擊的按鍵是否是確定,如果是,轉步驟310;否則執(zhí)行步驟309。
步驟309,計算用戶點擊點在虛擬鍵盤上的坐標(x,y),并按順序記錄下來,轉步驟302,運行預定的偽隨機數(shù)算法得到下一個隨機數(shù),用來生成新的按鍵布局,供用戶輸入下一個數(shù)字。
步驟310,將{timestamp,(x1,y1),(x2,y2),…(xn,yn)}作為輸入相關參數(shù)上傳給服務端。
服務端的處理流程如圖4所示。
步驟401,接收客戶端上傳的輸入相關參數(shù){timestamp,(x1,y1),(x2,y2),…(xn,yn)},從中提取時間戳timestamp和點擊位置序列{(x1,y1),(x2,y2),…(xn,yn)},將timestamp作為隨機數(shù)種子。取點擊位置序列中的第一個坐標值(x1,y1)作為當前點擊坐標值。生成用戶輸入字符串,當前為空。
步驟402,運行預定的偽隨機數(shù)算法,生成一個整數(shù)隨機數(shù)k。服務端的預定偽隨機數(shù)算法與客戶端相同,這樣,當使用相同的隨機數(shù)種子時,將生 成相同的偽隨機數(shù)序列。
步驟403,生成按鍵集合:{0,1,2,3,4,5,6,7,8,9},包括10個元素。生成布局序列,此時為空。令i=10。
步驟404,計算k對i取模的結果m,即m=(k%i)。
步驟405,刪除按鍵集合中第m個元素,將第m個元素添加到布局序列的最后。
步驟406,判斷i是否等于0,如果是,執(zhí)行步驟407;如果否,將i減1,轉步驟404。
步驟407,按照布局序列中各元素的順序設置虛擬鍵盤上數(shù)字按鍵的鍵值,生成按鍵布局。查找當前點擊坐標值在虛擬鍵盤上的點在哪個數(shù)字按鍵上,將該按鍵的鍵值添加到用戶輸入字符串的末尾。
步驟408,判斷當前點擊坐標值是否是點擊位置序列中的最后一個坐標值,如果是,執(zhí)行步驟409;否則將點擊位置序列中的下一個坐標值作為當前點擊坐標值,轉步驟402。
步驟409,將用戶輸入字符串作為用戶的輸入密碼。
與上述流程實現(xiàn)對應,本申請的實施例還提供了一種應用于客戶端的安全輸入的實現(xiàn)裝置,和一種應用于服務端的安全輸入的實現(xiàn)裝置。這兩種裝置均可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結合的方式實現(xiàn)。以軟件實現(xiàn)為例,作為邏輯意義上的裝置,是通過所在設備的cpu(centralprocessunit,中央處理器)將對應的計算機程序指令讀取到內存中運行形成的。從硬件層面而言,除了圖5所示的cpu、內存以及非易失性存儲器之外,裝置所在的設備通常還包括用于進行無線信號收發(fā)的芯片等其他硬件,或者用于實現(xiàn)網絡通信功能的板卡等其他硬件。
圖6所示為本申請實施例提供的一種安全輸入的實現(xiàn)裝置,應用在客戶端,包括客戶端布局生成單元、點擊位置記錄單元和輸入參數(shù)上傳單元,其中:客戶端布局生成單元用于根據客戶端算法生成虛擬鍵盤的按鍵布局,并顯示給用戶;點擊位置記錄單元用于記錄用戶在虛擬鍵盤上輸入時的點擊位 置;輸入參數(shù)上傳單元用于將輸入相關參數(shù)上傳給服務器;所述輸入相關參數(shù)包括用戶在虛擬鍵盤上的點擊位置,供服務端采用服務端算法還原出同樣的按鍵布局,根據上傳的點擊位置獲取用戶的輸入內容;所述服務端算法與客戶端算法相同或相對應。
可選的,所述裝置還包括:客戶端布局更新單元,用于在記錄用戶在虛擬鍵盤上一次輸入操作的點擊位置后,根據客戶端算法更新虛擬鍵盤的按鍵布局,并顯示給用戶供其進行下一次輸入操作。
可選的,所述裝置還包括:顯示取消單元,用于在收到用戶在虛擬鍵盤上的點擊輸入后,不顯示用戶點擊輸入的按鍵內容。
一個例子中,所述輸入相關參數(shù)還包括算法變量值,供服務端以接收的算法變量值為服務端算法的輸入,還原出同樣的鍵盤布局。
上述例子中,所述客戶端布局生成單元可以具體用于:獲取當前的時間戳,以當前的時間戳為客戶端算法的輸入,生成虛擬鍵盤的按鍵布局,并顯示給用戶;所述算法變量值包括:生成虛擬鍵盤的按鍵布局時采用的時間戳。
上述例子中,所述根據客戶端布局生成單元可以包括客戶端隨機數(shù)模塊、客戶端按鍵集合模塊、客戶端布局序列模塊和客戶端按鍵布局模塊,其中:客戶端隨機數(shù)模塊用于獲取當前的時間戳,以當前的時間戳作為預定偽隨機數(shù)算法的種子,生成客戶端隨機數(shù)k;所述客戶端隨機數(shù)為整數(shù);客戶端按鍵集合模塊用于將虛擬鍵盤上的按鍵組成按鍵集合,其中包括n個按鍵;n為自然數(shù);客戶端布局序列模塊用于取出按鍵集合中第(k%i)個按鍵,將其依序添加到布局序列中;重復本步驟將i從n遞減到0;客戶端按鍵布局模塊用于根據布局序列中按鍵的順序,生成虛擬鍵盤的按鍵布局。
圖7所示為本申請實施例提供的一種安全輸入的實現(xiàn)裝置,應用在服務端,包括輸入參數(shù)接收單元和輸入內容獲取單元,其中:輸入參數(shù)接收單元用于接收客戶端上傳的輸入相關參數(shù);所述輸入相關參數(shù)包括用戶在虛擬鍵盤上的點擊位置;所述虛擬鍵盤的按鍵布局由客戶端根據客戶端算法生成;輸入內容獲取單元用于采用服務端算法還原出同樣的按鍵布局,根據所述點 擊位置獲取用戶的輸入內容;所述服務端算法與客戶端算法相同或相對應。
可選的,所述輸入內容獲取單元具體用于:在根據按鍵布局獲取對應于用戶一個點擊位置的輸入內容后,采用服務端算法更新虛擬鍵盤的按鍵布局,并根據更新后的按鍵布局來獲取對應于用戶下一個點擊位置的輸入內容。
一個例子中,所述輸入相關參數(shù)還包括算法變量值;所述輸入內容獲取單元具體用于:以所述算法變量值作為服務端算法的輸入,還原出同樣的鍵盤布局,根據所述點擊位置獲取用戶的輸入內容。
上述例子中,所述算法變量值可以包括時間戳;所述輸入內容獲取單元可以包括服務端隨機數(shù)模塊、服務端按鍵集合模塊、服務端布局序列模塊和輸入內容模塊,其中:服務端隨機數(shù)模塊用于以客戶端上傳的時間戳作為預定偽隨機數(shù)算法的種子,生成服務端隨機數(shù)k;所述服務端隨機數(shù)為整數(shù);服務端按鍵集合模塊用于將虛擬鍵盤上的按鍵組成按鍵集合,其中包括n個按鍵;n為自然數(shù);服務端布局序列模塊用于取出按鍵集合中第(k%i)個按鍵,將其依序添加到布局序列中;重復本步驟將i從n遞減到0;輸入內容模塊用于根據布局序列中按鍵的順序,還原虛擬鍵盤的按鍵布局,按照上傳的點擊位置獲取用戶的輸入內容。
以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本申請保護的范圍之內。
在一個典型的配置中,計算設備包括一個或多個處理器(cpu)、輸入/輸出接口、網絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(ram)和/或非易失性內存等形式,如只讀存儲器(rom)或閃存(flashram)。內存是計算機可讀介質的示例。
計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據結構、程序的模塊或其他數(shù)據。計算機的存儲介質的例子包括,但不限于相變內存(pram)、 靜態(tài)隨機存取存儲器(sram)、動態(tài)隨機存取存儲器(dram)、其他類型的隨機存取存儲器(ram)、只讀存儲器(rom)、電可擦除可編程只讀存儲器(eeprom)、快閃記憶體或其他內存技術、只讀光盤只讀存儲器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設備或任何其他非傳輸介質,可用于存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括暫存電腦可讀媒體(transitorymedia),如調制的數(shù)據信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本領域技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)或計算機程序產品。因此,本申請可采用完全硬件實施例、完全軟件實施例或結合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。