專(zhuān)利名稱(chēng):一種防密碼竊聽(tīng)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,尤其涉及一種防密碼竊聽(tīng)的方法。
背景技術(shù):
隨著科學(xué)技術(shù)的不斷發(fā)展,竊聽(tīng)的涵義早已超出截聽(tīng)電話(huà)的概念,它借助于技術(shù)設(shè)備、技術(shù)手段,不僅竊取語(yǔ)言信息,還竊取數(shù)據(jù)、文字、圖像等信息。發(fā)明人在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)現(xiàn)在現(xiàn)有技術(shù)中至少存在以下缺陷:在現(xiàn)有技術(shù)中,現(xiàn)有設(shè)備采用的PIN加固方案無(wú)法防止黑客鉤取底層鍵盤(pán)消息獲取用戶(hù)輸入的密碼,存在用戶(hù)密碼被黑客竊取的風(fēng)險(xiǎn)。
發(fā)明內(nèi)容
本發(fā)明的目的是解決現(xiàn)有技術(shù)中存在的問(wèn)題,提供了一種防密碼竊聽(tīng)的方法。本發(fā)明采用的技術(shù)方案是:一種防密碼竊聽(tīng)的方法,包括:USB設(shè)備與主機(jī)建立連接后,聲明自身為兩個(gè)設(shè)備,即USB KEY和鍵盤(pán);步驟Al:所述USB設(shè)備通過(guò)自身聲明的鍵盤(pán)向所述主機(jī)發(fā)送第一鍵值信息,并將所述第一鍵值信息和與之對(duì)應(yīng)的時(shí)間保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中;步驟B1:所述窗口等待接收鍵值信息,所述窗口將接收到的每個(gè)鍵值信息和與之對(duì)應(yīng)的時(shí)間保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;步驟Cl:所述窗口判斷是否結(jié)束輸入,如果是,則執(zhí)行步驟D1,否則返回執(zhí)行步驟BI ;步驟Dl:所述窗口或服務(wù)器或所述USB設(shè)備根據(jù)所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容與第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容進(jìn)行預(yù)設(shè)計(jì)算,將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存,所述保存的鍵值信息即為用戶(hù)鍵盤(pán)輸入的密碼;所述USB KEY可以是CCID類(lèi)型設(shè)備或HID類(lèi)型設(shè)備或SCSI類(lèi)型設(shè)備;所述與第一鍵值信息對(duì)應(yīng)的時(shí)間為絕對(duì)時(shí)間或相對(duì)時(shí)間,其中,所述絕對(duì)時(shí)間為USB設(shè)備內(nèi)部時(shí)鐘時(shí)間,所述相對(duì)時(shí)間為相對(duì)于設(shè)備起始時(shí)間的時(shí)間,所述設(shè)備起始時(shí)間具體為所述USB設(shè)備與主機(jī)連接上電時(shí)記錄的時(shí)間,或?yàn)樗鯱SB設(shè)備向主機(jī)發(fā)送的第一個(gè)鍵值信息時(shí)記錄的時(shí)間;所述與窗口接收到的每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間為絕對(duì)時(shí)間或相對(duì)時(shí)間,其中,所述絕對(duì)時(shí)間為主機(jī)時(shí)鐘時(shí)刻,所述相對(duì)時(shí)間為相對(duì)與窗口起始時(shí)間的時(shí)間,所述窗口起始時(shí)間具體為當(dāng)主機(jī)界面上顯示輸入窗口后記錄的時(shí)間,或當(dāng)所述窗口接收到第一個(gè)鍵值信息時(shí)記錄的時(shí)間;步驟Dl具體為:步驟Dl-1:所述窗口將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容發(fā)送給所述USB設(shè)備;步驟D2-2:所述USB設(shè)備接收到所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容后,根據(jù)所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容與第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容進(jìn)行預(yù)設(shè)計(jì)算,將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第八預(yù)設(shè)存儲(chǔ)區(qū)中,所述第八預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容即為用戶(hù)鍵盤(pán)輸入的密碼;所述步驟D2-2中預(yù)設(shè)計(jì)算具體為:步驟101:所述USB設(shè)備從所述第一預(yù)設(shè)存儲(chǔ)區(qū)中保存的第一個(gè)鍵值信息開(kāi)始,將第一個(gè)鍵值信息與第二個(gè)鍵值信息作為當(dāng)前數(shù)據(jù);步驟102:所述USB設(shè)備計(jì)算所述當(dāng)前數(shù)據(jù)中的鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差,判斷從第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中是否能夠查找到與當(dāng)前數(shù)據(jù)相同且時(shí)間差與當(dāng)前數(shù)據(jù)的時(shí)間差的差值在預(yù)設(shè)時(shí)間間隔內(nèi)的鍵值信息,如果是,則執(zhí)行步驟103,否則執(zhí)行步驟105 ;步驟103:所述USB設(shè)備判斷在第十預(yù)設(shè)存儲(chǔ)區(qū)中是否存在與當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息相同且所在位置也相同的信息,如果是,則將所述信息的當(dāng)前比較次數(shù)增加預(yù)設(shè)數(shù)值,執(zhí)行步驟104,否則將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息和當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息的位置保存在第十預(yù)設(shè)存儲(chǔ)區(qū)中,且將第十預(yù)設(shè)存儲(chǔ)區(qū)中的比較次數(shù)記為第一數(shù)值,執(zhí)行步驟104 ;步驟104:所述USB設(shè)備判斷是否存在與當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息,如果是,則將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息作為當(dāng)前數(shù)據(jù)執(zhí)行步驟102,否則執(zhí)行步驟106 ;步驟105:所述USB設(shè)備判斷是否存在與當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息,如果是,則將當(dāng)前數(shù)據(jù)中的第二個(gè)鍵值信息與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息作為當(dāng)前數(shù)據(jù)執(zhí)行步驟102,否則執(zhí)行步驟106 ;步驟106:所述USB設(shè)備查找所述預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息所在的位置,將第一預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間和第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述比較次數(shù)最大的鍵值信息相同的時(shí)間記為第一時(shí)間,并計(jì)算從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,其余鍵值信息對(duì)應(yīng)的時(shí)間;步驟107:所述USB設(shè)備從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,計(jì)算計(jì)算所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值;步驟108:所述USB設(shè)備判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟109,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的鍵值信息保存在第八預(yù)設(shè)存儲(chǔ)區(qū)中;步驟109:所述USB設(shè)備判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)鍵值信息保存在第八預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與在第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第八預(yù)設(shè)存儲(chǔ)區(qū)中,所述第八預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容即為用戶(hù)鍵盤(pán)輸入的密碼;步驟Dl具體為:步驟Dl-1l:所述窗口向所述USB設(shè)備發(fā)送指令,要求USB設(shè)備將所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容返回給主機(jī);步驟D1-12:所述USB設(shè)備接收到所述窗口發(fā)送的指令后,向主機(jī)返回所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容;
步驟Dl-13:所述窗口接收到所述USB設(shè)備返回的第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容后,將所述第一預(yù)設(shè)存儲(chǔ)區(qū)和第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容發(fā)送給服務(wù)器。步驟D1-14:所述服務(wù)器根據(jù)接收到所述第一預(yù)設(shè)存儲(chǔ)區(qū)和第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容進(jìn)行預(yù)設(shè)計(jì)算,將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第九預(yù)設(shè)存儲(chǔ)區(qū)中,所述第九預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容即為用戶(hù)鍵盤(pán)輸入的密碼;所述步驟D1-14中預(yù)設(shè)計(jì)算具體為:步驟201:所述服務(wù)器從接收到的第一預(yù)設(shè)存儲(chǔ)區(qū)中的第一個(gè)鍵值信息開(kāi)始,將第一個(gè)鍵值信息與第二個(gè)鍵值信息作為當(dāng)前數(shù)據(jù);步驟202:所述服務(wù)器計(jì)算所述當(dāng)前數(shù)據(jù)中的鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差,判斷從第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中是否能夠查找到與當(dāng)前數(shù)據(jù)相同且時(shí)間差與當(dāng)前數(shù)據(jù)的時(shí)間差的差值在預(yù)設(shè)時(shí)間間隔內(nèi)的鍵值信息,如果是,則執(zhí)行步驟203,否則執(zhí)行步驟205 ;步驟203:所述服務(wù)器判斷在第十預(yù)設(shè)存儲(chǔ)區(qū)中是否存在與當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息相同且所在位置也相同的信息,如果是,則將所述信息的當(dāng)前比較次數(shù)增加預(yù)設(shè)數(shù)值,執(zhí)行步驟204,否則將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息和當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息的位置保存在第十預(yù)設(shè)存儲(chǔ)區(qū)中,且將第十預(yù)設(shè)存儲(chǔ)區(qū)中的比較次數(shù)記為第一數(shù)值,執(zhí)行步驟204 ;步驟204:所述服務(wù)器判斷是否存在與當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息,如果是,則將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息作為當(dāng)前數(shù)據(jù)執(zhí)行步驟202,否則執(zhí)行步驟206 ;步驟205:所述服務(wù)器判斷是否存在與當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息,如果是,則將當(dāng)前數(shù)據(jù)中的第二個(gè)鍵值信息與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息作為當(dāng)前數(shù)據(jù)執(zhí)行步驟202,否則執(zhí)行步驟206 ;步驟206:所述服務(wù)器查找所述預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息所在的位置,將第一預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間和第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述比較次數(shù)最大的鍵值信息相同的時(shí)間記為第一時(shí)間,并計(jì)算從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,其余鍵值信息對(duì)應(yīng)的時(shí)間;步驟207:所述服務(wù)器從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,計(jì)算計(jì)算所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值;步驟208:所述服務(wù)器判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟616,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的鍵值信息保存在第九預(yù)設(shè)存儲(chǔ)區(qū)中;步驟209:所述服務(wù)器判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)鍵值信息保存在第九預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與在第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第九預(yù)設(shè)存儲(chǔ)區(qū)中。所述計(jì)算從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,其余鍵值信息對(duì)應(yīng)的時(shí)間,具體為:將第一預(yù)設(shè)存儲(chǔ)區(qū)中的其余鍵值信息的時(shí)間記為每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第一預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間的差值再加上第一時(shí)間,將第二預(yù)設(shè)存儲(chǔ)區(qū)中的其余鍵值信息的時(shí)間記為每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第二預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間的差值再加上第一時(shí)間;所述USB設(shè)備與主機(jī)建立連接后,聲明自身為兩個(gè)設(shè)備,即USB KEY和鍵盤(pán)之后還包括:所述窗口向USB設(shè)備發(fā)送進(jìn)行干擾的指令。所述步驟Cl與步驟Dl之間還包括:所述窗口向USB設(shè)備發(fā)送停止干擾的指令,所述USB設(shè)備接收到所述指令后,停止發(fā)送干擾信息;所述步驟Dl具體為:步驟SOl:所述窗口將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容發(fā)送給所述USB設(shè)備,并清除所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容;步驟S02:所述USB設(shè)備根據(jù)所述第一預(yù)設(shè)存儲(chǔ)區(qū)和所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容進(jìn)行預(yù)設(shè)計(jì)算,將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中,所述第三預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容即為用戶(hù)鍵盤(pán)輸入的密碼;所述步驟S02中預(yù)設(shè)計(jì)算具體為:步驟S02-1:所述USB設(shè)備計(jì)算所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值;步驟S02-2:所述USB設(shè)備判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟S02-3,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的鍵值信息保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中;步驟S02-3:所述USB設(shè)備判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中,所述第三預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息即為用戶(hù)鍵盤(pán)輸入的密碼;所述步驟Dl具體為:步驟Sll:所述窗口向USB設(shè)備發(fā)送指令,要求USB設(shè)備向主機(jī)返回第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容;步驟S12:USB設(shè)備接收到所述窗口發(fā)送的指令后,將第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容返回給主機(jī),然后將所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容清除;步驟S13:所述窗口接收到USB設(shè)備返回的第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容后,將所述第一預(yù)設(shè)存儲(chǔ)區(qū)和第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容發(fā)送給服務(wù)器;步驟S14:所述服務(wù)器根據(jù)接收到的所述第一預(yù)設(shè)存儲(chǔ)區(qū)和第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容進(jìn)行預(yù)設(shè)計(jì)算,將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第四預(yù)設(shè)存儲(chǔ)區(qū)中,所述第四預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容即為用戶(hù)鍵盤(pán)輸入的密碼;所述步驟S14具體為:步驟S14-1:所述服務(wù)器計(jì)算所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值;步驟S14-2:所述服務(wù)器判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟S14-3,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的鍵值信息保存在第四預(yù)設(shè)存儲(chǔ)區(qū)中;步驟S14-3:所述服務(wù)器判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)保存在第四預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息在第四預(yù)設(shè)存儲(chǔ)區(qū)中,所述第四預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息即為用戶(hù)鍵盤(pán)輸入的密碼。所述步驟Al之前還包括:所述窗口向USB設(shè)備發(fā)送指令,要求USB設(shè)備按照指令內(nèi)容中的時(shí)間發(fā)送對(duì)應(yīng)的鍵值信息,同時(shí)所述窗口將所述指令內(nèi)容保存在第五預(yù)設(shè)存儲(chǔ)區(qū)中。所述步驟Al修改為:所述USB設(shè)備接收到指令后,在所述指令內(nèi)容中指定的時(shí)間點(diǎn)上發(fā)送對(duì)應(yīng)的第一鍵值信息;所述步驟Dl具體為:步驟S21:所述窗口計(jì)算所述第五預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值;步驟S22:所述窗口判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟S23,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的鍵值信息保存在第六預(yù)設(shè)存儲(chǔ)區(qū)中;步驟S23:所述窗口判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)保存在第六預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第六預(yù)設(shè)存儲(chǔ)區(qū)中,所述第六預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息即為用戶(hù)鍵盤(pán)輸入的密碼;所述步驟Cl與步驟Dl之間還包括:步驟S31:所述窗口等待接收鍵值信息,當(dāng)所述窗口每接收到一個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令;步驟S32:所述USB設(shè)備接收到所述窗口發(fā)送的指令后,回應(yīng)自身發(fā)送鍵值信息的個(gè)數(shù),所述窗口接收到USB設(shè)備發(fā)送的回應(yīng)信息后解密得到USB設(shè)備發(fā)送的個(gè)數(shù),計(jì)算需要在窗口界面上顯示預(yù)設(shè)字符的個(gè)數(shù),并在所述窗口界面上顯示預(yù)設(shè)字符;一種防密碼竊聽(tīng)的方法,包括:當(dāng)USB設(shè)備與主機(jī)建立連接后,USB設(shè)備聲明自身為兩個(gè)設(shè)備,即USB KEY和鍵盤(pán),當(dāng)主機(jī)界面上顯示輸入密碼窗口后,所述窗口向USB設(shè)備發(fā)送進(jìn)行干擾的指令,所述USB設(shè)備接收到所述指令后,通過(guò)自身聲明的鍵盤(pán)向主機(jī)發(fā)送第一鍵值信息,并將第一鍵值信息保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中;步驟A2:所述窗口等待接收鍵值信息,所述窗口每接收到一個(gè)鍵值信息后,將所述接收到的一個(gè)鍵值信息發(fā)送給USB設(shè)備;步驟B2:所述USB設(shè)備每接收到主機(jī)發(fā)送的一個(gè)鍵值信息后,與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中保存的第一鍵值信息進(jìn)行比較,如果相同,則執(zhí)行步驟C2,否則執(zhí)行步驟D2 ;步驟C2:所述USB設(shè)備將第一預(yù)設(shè)存儲(chǔ)區(qū)中保存的與接收到的鍵值信息相同的鍵值信息刪除,執(zhí)行步驟E2;
步驟D2:所述USB設(shè)備將第一預(yù)設(shè)存儲(chǔ)區(qū)中保存的與接收到的鍵值信息不相同的鍵值信息保存在第七預(yù)設(shè)存儲(chǔ)區(qū)中,執(zhí)行步驟E2 ;步驟E2:所述窗口判斷確認(rèn)按鈕是否被按下,如果是,則向所述USB設(shè)備發(fā)送結(jié)束干擾的指令,執(zhí)行步驟F2,否則返回執(zhí)行步驟A2 ;步驟F2:所述USB設(shè)備接收到所述指令后,停止向主機(jī)發(fā)送鍵值信息;所述USB KEY可以是CCID類(lèi)型設(shè)備或HID類(lèi)型設(shè)備或SCSI類(lèi)型設(shè)備;所述步驟A2與步驟B2之間還包括:步驟S41:所述窗口向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令;步驟S42 =USB設(shè)備接收到所述窗口發(fā)送的指令后,回應(yīng)自身發(fā)送鍵值信息的個(gè)數(shù),所述窗口接收到USB設(shè)備發(fā)送的回應(yīng)信息后解密得到USB設(shè)備發(fā)送的個(gè)數(shù),計(jì)算需要在窗口界面上顯示預(yù)設(shè)字符的個(gè)數(shù),并在所述窗口界面上顯示預(yù)設(shè)字符;本發(fā)明取得的有益效果是:采用本發(fā)明所述方案能夠有效的提高黑客竊取用戶(hù)信息的難度,增加了設(shè)備的安全性。
圖1是本發(fā)明實(shí)施例1提供的一種防密碼竊聽(tīng)的方法流程圖;圖2是本發(fā)明實(shí)施例1提供的一種防密碼竊聽(tīng)的方法的時(shí)序圖;圖3是本發(fā)明實(shí)施例2提供的一種防密碼竊聽(tīng)的方法流程圖;圖4是本發(fā)明實(shí)施例2提供的一種防密碼竊聽(tīng)的方法的時(shí)序圖;圖5是本發(fā)明實(shí)施例3提供的一種防密碼竊聽(tīng)的方法流程圖;圖6是本發(fā)明實(shí)施例3提供的一種防密碼竊聽(tīng)的方法的時(shí)序圖;圖7是本發(fā)明實(shí)施例4提供的一種防密碼竊聽(tīng)的方法流程圖;圖8是本發(fā)明實(shí)施例5提供的一種防密碼竊聽(tīng)的方法流程圖;圖9是本發(fā)明實(shí)施例5提供的一種防密碼竊聽(tīng)的方法的時(shí)序圖;圖10是本發(fā)明實(shí)施例6提供的一種防密碼竊聽(tīng)的方法流程圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例1本發(fā)明實(shí)施例1提供了一種防密碼竊聽(tīng)的方法,如圖1所示,包括:USB設(shè)備與主機(jī)建立連接后,USB設(shè)備聲明自身為兩個(gè)設(shè)備,即USB KEY和鍵盤(pán);所述USB KEY可以是CCID類(lèi)型設(shè)備或HID類(lèi)型設(shè)備或SCSI類(lèi)型設(shè)備;在本實(shí)施例中,優(yōu)選的,當(dāng)主機(jī)界面上顯示輸入密碼窗口后,所述窗口記錄窗口起始時(shí)間,所述窗口起始時(shí)間為相對(duì)時(shí)間,除此之外,還可以是絕對(duì)時(shí)間,即主機(jī)時(shí)鐘時(shí)刻,也可以是當(dāng)所述窗口接收到第一個(gè)鍵值信息時(shí),記錄窗口起始時(shí)間;
如圖2所示,所述窗口記錄所述窗口起始時(shí)間為Os ;步驟101:所述窗口向USB設(shè)備發(fā)送進(jìn)行干擾的指令;步驟102:所述USB設(shè)備接收到所述進(jìn)行干擾的指令后,記錄設(shè)備起始時(shí)間,通過(guò)自身聲明的鍵盤(pán)向主機(jī)發(fā)送第一鍵值信息,并將所述第一鍵值信息和對(duì)應(yīng)的時(shí)間保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中;優(yōu)選的,所述第一鍵值信息是USB設(shè)備隨機(jī)向主機(jī)發(fā)送的信息,除此之外,還可以是USB設(shè)備按照預(yù)設(shè)間隔發(fā)送的信息;在本實(shí)施例中,所述第一鍵值信息是USB設(shè)備連續(xù)隨機(jī)的向主機(jī)發(fā)送的信息,同時(shí)USB設(shè)備將第一鍵值信息和對(duì)應(yīng)的時(shí)間保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中;在本實(shí)施例中,所述對(duì)應(yīng)的時(shí)間可以是絕對(duì)時(shí)間,也可以是相對(duì)時(shí)間,如果是絕對(duì)時(shí)間,則取USB設(shè)備內(nèi)部時(shí)鐘時(shí)間,如果是相對(duì)時(shí)間,則所述USB設(shè)備與主機(jī)連接上電后,記錄設(shè)備起始時(shí)間,或USB設(shè)備將向主機(jī)發(fā)送的第一個(gè)鍵值信息記為設(shè)備起始時(shí)間;在本實(shí)施例中,優(yōu)選的,所述對(duì)應(yīng)的時(shí)間為相對(duì)時(shí)間,優(yōu)選的是所述USB設(shè)備與主機(jī)連接上電后,記錄設(shè)備起始時(shí)間;在本實(shí)施例中,以相對(duì)時(shí)間為例進(jìn)行說(shuō)明;如圖2所示,所述設(shè)備起始時(shí)間為Os ;USB設(shè)備向主機(jī)發(fā)送的第一鍵值信息為alc,鍵值a對(duì)應(yīng)的相對(duì)時(shí)間為ls,鍵值I對(duì)應(yīng)的相對(duì)時(shí)間為1.8s,鍵值c對(duì)應(yīng)的相對(duì)時(shí)間為2.5s,將第一鍵值信息alc與對(duì)應(yīng)的相對(duì)時(shí)間Is、1.8s和2.5s保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中;步驟103:所述窗口等待接收鍵值信息,當(dāng)所述窗口每接收到一個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令;其中,所述窗口接收到的鍵值信息可以是USB設(shè)備發(fā)送的第一鍵值信息,也可以是用戶(hù)輸入的第二鍵值信息,但所述窗口沒(méi)有識(shí)別鍵值信息來(lái)源的機(jī)制,因此所述窗口每接收到一個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令;在本實(shí)施例中,為防止USB設(shè)備發(fā)送鍵值信息個(gè)數(shù)被竊聽(tīng),優(yōu)選的,當(dāng)所述窗口向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令時(shí),加入隨機(jī)數(shù)加密機(jī)制,USB設(shè)備在回應(yīng)個(gè)數(shù)信息時(shí)也帶有此隨機(jī)數(shù)加密;步驟104 =USB設(shè)備接收到查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令后,回應(yīng)自身發(fā)送鍵值信息的個(gè)數(shù);步驟105:所述窗口接收到USB設(shè)備發(fā)送的回應(yīng)信息后解密得到USB設(shè)備發(fā)送鍵值信息的個(gè)數(shù),計(jì)算需要在窗口界面上顯示預(yù)設(shè)字符的個(gè)數(shù),并在所述窗口界面上顯示預(yù)設(shè)字符;在本實(shí)施例中,優(yōu)選的,所述預(yù)設(shè)字符為“*” ;其中,計(jì)算需要在窗口界面上顯示預(yù)設(shè)字符的個(gè)數(shù),具體為:例如,在本實(shí)施例中,當(dāng)所述窗口接收到第I個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令,USB設(shè)備在接收到此指令后,向主機(jī)發(fā)送自身向主機(jī)發(fā)送鍵值信息的個(gè)數(shù),如果USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)為0,則表示窗口接收到的鍵值信息是由用戶(hù)輸入的,則在主機(jī)的輸入密碼窗口中顯示一個(gè)預(yù)設(shè)字符,如果USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)為1,則表示窗口接收到的是USB設(shè)備發(fā)送的干擾信息,則不在窗口界面上顯示;依此類(lèi)推,當(dāng)窗口接收到第N個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令,USB設(shè)備在接收到此指令后,向主機(jī)發(fā)送自身向主機(jī)發(fā)送鍵值信息的個(gè)數(shù),如果USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)為M,則表示用戶(hù)向主機(jī)輸入的鍵值信息的數(shù)量為N-M個(gè),如果N-M大于已顯示的預(yù)設(shè)字符的個(gè)數(shù),則在已顯示的預(yù)設(shè)字符之后再顯示一個(gè)預(yù)設(shè)字符,如果N-M等于已顯示的預(yù)設(shè)字符的個(gè)數(shù),則不在窗口界面上顯示;在本實(shí)施例中,在窗口界面上顯示預(yù)設(shè)字符,優(yōu)選的是步驟105中的方案,除此之夕卜,還可以采用下述兩種方案:1、所述窗口在接收到鍵值信息后,在窗口界面窗口中不顯示任何信息;2、所述窗口在接收到鍵值信息后,全部以預(yù)設(shè)字符的形式在窗口界面中顯示;步驟106:所述窗口將接收到的鍵值信息流和每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;在本實(shí)施例中,所述每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間可以是絕對(duì)時(shí)間,也可以是相對(duì)時(shí)間,如果是相對(duì)時(shí)間,則當(dāng)主機(jī)上顯示輸入密碼窗口后,所述窗口記錄窗口起始時(shí)間,或者當(dāng)所述窗口接收到第一個(gè)鍵值信息時(shí),記錄窗口起始時(shí)間;在本實(shí)施例中,優(yōu)選的是相對(duì)時(shí)間,優(yōu)選的是當(dāng)主機(jī)上顯示輸入密碼窗口后,所述窗口記錄窗口起始時(shí)間;如圖2所示,當(dāng)窗口接收到鍵值信息a時(shí),將鍵值信息a和對(duì)應(yīng)的時(shí)間1.002s保存;當(dāng)窗口接收到鍵值信息a時(shí),將鍵值信息a與鍵值信息a組合成鍵值信息流aa,然后將鍵值信息a對(duì)應(yīng)的時(shí)間1.022s保存;當(dāng)窗口接收到鍵值信息I時(shí),將鍵值信息a、鍵值信息a和鍵值信息I組合成鍵值信息流aal,然后將鍵值信息I對(duì)應(yīng)的時(shí)間1.802s保存;當(dāng)窗口接收到鍵值信息c時(shí),將鍵值信息a、鍵值信息C、鍵值信息I和鍵值信息c組合成鍵值信息流aalc,然后將鍵值信息c對(duì)應(yīng)的時(shí)間2.504s保存;當(dāng)窗口接收到鍵值信息b時(shí),將鍵值信息a、鍵值信息a、鍵值信息1、鍵值信息c和鍵值信息b組合成鍵值信息流aalcb,然后將鍵值信息b對(duì)應(yīng)的時(shí)間2.753s保存;步驟107:所述窗口判斷是否結(jié)束輸入,如果是,則執(zhí)行步驟108,否則返回步驟103 ;其中,所述窗口判斷是否結(jié)束輸入是通過(guò)判斷確認(rèn)按鈕是否被按下,或是通過(guò)判斷是否接收到enter鍵值信息;步驟108:所述窗口向USB設(shè)備發(fā)送停止干擾的指令,并將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容發(fā)送給USB設(shè)備,清除所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容;在本實(shí)施例中,所述窗口將接收到的鍵值信息流aalcb和每個(gè)鍵值對(duì)應(yīng)的時(shí)間1.002s、1.022s、1.802s,2.504s 和 2.753s 發(fā)送給 USB 設(shè)備;步驟109:USB設(shè)備接收到所述停止干擾的指令和第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容后,停止發(fā)送干擾信息,并計(jì)算所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值;
參見(jiàn)圖2,所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的第I個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值為:(0.002s,0.022,0.802,1.504,1.753);所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的第2個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值為:(0.798s, 0.778,0.002,0.704,0.953);所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的第3個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值為:(1.498s,1.478,0.698,0.004,0.253);步驟110:所述USB設(shè)備判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟111,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的第二預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中;在本實(shí)施例中,優(yōu)選的,所述預(yù)設(shè)時(shí)間間隔為用戶(hù)輸入鍵值信息的最小間隔的一半,例如,用戶(hù)Is之內(nèi)輸入5個(gè)鍵值信息,最小間隔是0.2s,則設(shè)定預(yù)設(shè)時(shí)間間隔為0.1s ;參見(jiàn)圖2,步驟109中計(jì)算的第一預(yù)設(shè)存儲(chǔ)區(qū)中的第一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),即0.002s 和 0.022,執(zhí)行步驟 111 ;其余第一預(yù)設(shè)存儲(chǔ)區(qū)中的第二個(gè)鍵值信息和第三個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值均超過(guò)預(yù)設(shè)時(shí)間間隔,即將第二預(yù)設(shè)存儲(chǔ)區(qū)中,2.753s接收到的鍵值信息b保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中;步驟111:所述USB設(shè)備判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)鍵值信息保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與在第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中;在本實(shí)施例中,步驟110中,計(jì)算得到第一預(yù)設(shè)存儲(chǔ)區(qū)中的第一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)即0.002s和0.022,則判斷0.002s接收到的鍵值信息與0.022s接收到的鍵值信息是否相同,如果是,則將任意一個(gè)鍵值信息保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中,否則,將其中與在第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中;參見(jiàn)圖2,0.002s接收到的鍵值信息為a,0.022s接收到的鍵值信息也為a,兩者相
同,則將任意一個(gè)a保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中;在本實(shí)施例中,在第三預(yù)設(shè)存儲(chǔ)區(qū)中保存的鍵值信息是鍵值信息流中的第2個(gè)和第5個(gè)鍵值信息,即ab,也就是用戶(hù)鍵盤(pán)輸入的密碼。實(shí)施例2本發(fā)明實(shí)施例2提供一種防密碼竊聽(tīng)的方法,如圖3所示,包括:USB設(shè)備與主機(jī)建立連接后,USB設(shè)備聲明自身為兩個(gè)設(shè)備,即USB KEY和鍵盤(pán);所述USB KEY可以是CCID類(lèi)型設(shè)備或HID類(lèi)型設(shè)備或SCSI類(lèi)型設(shè)備;在本實(shí)施例中,優(yōu)選的,當(dāng)主機(jī)界面上顯示輸入密碼窗口后,所述窗口記錄窗口起始時(shí)間,所述窗口起始時(shí)間為相對(duì)時(shí)間,除此之外,還可以是絕對(duì)時(shí)間,即主機(jī)時(shí)鐘時(shí)刻,也可以是當(dāng)所述窗口接收到第一個(gè)鍵值信息時(shí),記錄窗口起始時(shí)間;
所述窗口記錄所述窗口起始時(shí)間為Os ;步驟201:所述窗口向USB設(shè)備發(fā)送進(jìn)行干擾的指令;步驟202:所述USB設(shè)備接收到所述進(jìn)行干擾的指令后,記錄設(shè)備起始時(shí)間,通過(guò)自身聲明的鍵盤(pán)向主機(jī)發(fā)送第一鍵值信息,并將所述第一鍵值信息和對(duì)應(yīng)的時(shí)間保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中;所述第一鍵值信息是USB設(shè)備連續(xù)隨機(jī)的向主機(jī)發(fā)送的信息,同時(shí)USB設(shè)備將第一鍵值信息和對(duì)應(yīng)的時(shí)間保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中;在本實(shí)施例中,優(yōu)選的,所述對(duì)應(yīng)的時(shí)間為相對(duì)時(shí)間,即相對(duì)于設(shè)備起始時(shí)間的時(shí)間,除此之外,還可以是絕對(duì)時(shí)間;在本實(shí)施例中,以相對(duì)時(shí)間為例進(jìn)行說(shuō)明;如圖4所示,所述設(shè)備起始時(shí)間為Os ;USB設(shè)備向主機(jī)發(fā)送的第一鍵值信息為alc,鍵值信息a對(duì)應(yīng)的相對(duì)時(shí)間為ls,鍵值信息I對(duì)應(yīng)的相對(duì)時(shí)間為1.8S,鍵值信息C對(duì)應(yīng)的相對(duì)時(shí)間為2.5s,將鍵值信息alc與對(duì)應(yīng)的相對(duì)時(shí)間Is、1.8s和2.5s保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中;步驟203:所述窗口等待接收鍵值信息,當(dāng)所述窗口每接收到一個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令;其中,所述窗口接收到的鍵值信息可以是USB設(shè)備發(fā)送的第一鍵值信息,也可以是用戶(hù)輸入的第二鍵值信息,但所述窗口沒(méi)有識(shí)別鍵值信息來(lái)源的機(jī)制,因此所述窗口每接收到一個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令;在本實(shí)施例中,為防止USB設(shè)備發(fā)送鍵值信息個(gè)數(shù)被竊聽(tīng),優(yōu)選的,當(dāng)所述窗口向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息個(gè)數(shù)的指令時(shí),加入隨機(jī)數(shù)加密機(jī)制,USB設(shè)備在回應(yīng)個(gè)數(shù)信息時(shí)也帶有此隨機(jī)數(shù)加密;步驟204 =USB設(shè)備接收到查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息個(gè)數(shù)的指令后,回應(yīng)自身發(fā)送鍵值信息的個(gè)數(shù);步驟205:所述窗口接收到USB設(shè)備發(fā)送的回應(yīng)信息后解密得到USB設(shè)備發(fā)送鍵值信息的個(gè)數(shù),計(jì)算需要在窗口界面上顯示預(yù)設(shè)字符的個(gè)數(shù),并在所述窗口界面上顯示預(yù)設(shè)字符;在本實(shí)施例中,優(yōu)選的,所述預(yù)設(shè)字符為“ ” ;其中,計(jì)算需要在窗口界面上顯示預(yù)設(shè)字符的個(gè)數(shù),具體為:例如,在本實(shí)施例中,當(dāng)所述窗口接收到第I個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息個(gè)數(shù)的指令,USB設(shè)備在接收到此指令后,向主機(jī)發(fā)送自身向主機(jī)發(fā)送鍵值信息的個(gè)數(shù),如果USB設(shè)備向主機(jī)發(fā)送的個(gè)數(shù)為0,則表示窗口接收到的鍵值信息是由用戶(hù)輸入的,則在窗口界面上顯示一個(gè)預(yù)設(shè)字符,如果USB設(shè)備向主機(jī)發(fā)送的個(gè)數(shù)為1,則表示窗口接收到的是USB設(shè)備發(fā)送的干擾信息,則不在窗口界面上顯示;依次類(lèi)推,當(dāng)窗口接收到第N個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息個(gè)數(shù)的指令,USB設(shè)備在接收到此指令后,向主機(jī)發(fā)送自身向主機(jī)發(fā)送鍵值信息的個(gè)數(shù),如果USB設(shè)備向主機(jī)發(fā)送的個(gè)數(shù)為M,則表示用戶(hù)向主機(jī)輸入的鍵值信息的數(shù)量為N-M個(gè),如果N-M大于已顯示的預(yù)設(shè)字符的個(gè)數(shù),則在已顯示的預(yù)設(shè)字符之后再顯示一個(gè)預(yù)設(shè)字符,如果N-M等于已顯示的預(yù)設(shè)字符的個(gè)數(shù),則不在窗口界面上顯示;在本實(shí)施例中,在窗口界面上顯示預(yù)設(shè)字符,優(yōu)選的是步驟205中的方案,除此之夕卜,還可以是下述兩種方案:1、所述窗口在接收到鍵值信息后,在窗口界面窗口中不顯示任何信息;2、所述窗口在接收到鍵值信息后,全部以預(yù)設(shè)字符的形式在窗口界面中顯示;步驟206:所述窗口將接收到的鍵值信息流和每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;如圖4所示,當(dāng)窗口接收到鍵值信息a時(shí),將鍵值信息a和對(duì)應(yīng)的時(shí)間1.002s保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;當(dāng)窗口接收到鍵值信息2時(shí),將鍵值信息a與鍵值信息2組合成鍵值信息流a2,然后將鍵值信息2對(duì)應(yīng)的時(shí)間1.022s保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;當(dāng)窗口接收到鍵值信息I時(shí),將鍵值信息a、鍵值信息2和鍵值信息I組合成鍵值信息流a21,然后將鍵值信息I對(duì)應(yīng)的時(shí)間1.802s保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;當(dāng)窗口接收到鍵值信息c時(shí),將鍵值信息a、鍵值信息2、鍵值信息I和鍵值信息c組合成鍵值信息流a21c,然后將鍵值信息c對(duì)應(yīng)的時(shí)間2.504s保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;當(dāng)窗口接收到鍵值信息b時(shí),將鍵值信息a、鍵值信息2、鍵值信息1、鍵值信息c和信息鍵值b組合成鍵值信息流a21cb,然后將鍵值信息b對(duì)應(yīng)的時(shí)間2.753s保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;步驟207:所述窗口判斷是否結(jié)束輸入,如果是,則執(zhí)行步驟208,否則返回步驟203 ;其中,所述窗口判斷是否結(jié)束輸入是通過(guò)判斷確認(rèn)按鈕是否被按下,或是通過(guò)判斷是否接收到enter鍵值信息;步驟208:所述窗口向USB設(shè)備發(fā)送指令,要求USB設(shè)備停止發(fā)送干擾信息,并要求USB設(shè)備向主機(jī)返回第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容;步驟209:USB設(shè)備接收到所述窗口發(fā)送的指令后,停止發(fā)送干擾信息,并將第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容返回給主機(jī),然后將所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容清除;USB設(shè)備接收到指令后,停止發(fā)送干擾信息,并將第一鍵值信息alc和對(duì)應(yīng)的時(shí)間Is、1.8s和2.5s返回給主機(jī);步驟210:所述窗口接收到USB設(shè)備返回的第一預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容后,將第一預(yù)設(shè)存儲(chǔ)區(qū)和第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容發(fā)送給服務(wù)器;在本實(shí)施例中,所述窗口將接收到的鍵值信息流aalcb和每個(gè)鍵值對(duì)應(yīng)的時(shí)間1.002s、1.022s、1.802s,2.504s和2.753s以及接收到的第一鍵值信息alc和對(duì)應(yīng)的時(shí)間Is、1.8s和2.5s發(fā)送給服務(wù)器;步驟211:所述服務(wù)器接收到主機(jī)發(fā)送的第一預(yù)設(shè)存儲(chǔ)區(qū)和第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容后,計(jì)算所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值;參見(jiàn)圖4,所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的第I個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值為:(0.002s,0.022,0.802,1.504,1.753);
所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的第2個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值為:(0.798s, 0.778,0.002,0.704,0.953);所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的第3個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值為:(1.498s,1.478,0.698,0.004,0.253);步驟212:所述服務(wù)器判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟213,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的第二預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息保存在第四預(yù)設(shè)存儲(chǔ)區(qū)中;在本實(shí)施例中,優(yōu)選的,所述預(yù)設(shè)時(shí)間間隔為用戶(hù)輸入鍵值信息的最小時(shí)間間隔的一半,例如,用戶(hù)Is之內(nèi)輸入5個(gè)鍵值信息,最小間隔是0.2s,則設(shè)定預(yù)設(shè)時(shí)間間隔為最小間隔的一半0.1s ;參見(jiàn)圖4,步驟211中計(jì)算的第一預(yù)設(shè)存儲(chǔ)區(qū)中的第一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),即0.002s 和 0.022,執(zhí)行步驟 111 ;其余第一預(yù)設(shè)存儲(chǔ)區(qū)中的第二個(gè)鍵值信息和第三個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值均超過(guò)預(yù)設(shè)時(shí)間間隔,即將第二預(yù)設(shè)存儲(chǔ)區(qū)中,1.802s接收到的鍵值信息I和2.753s接收到的鍵值信息b保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中;步驟213:所述服務(wù)器判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)鍵值信息保存在第四預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第四預(yù)設(shè)存儲(chǔ)區(qū)中,所述第四預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容即為用戶(hù)輸入的密碼;在本實(shí)施例中,步驟212中,計(jì)算得到第一預(yù)設(shè)存儲(chǔ)區(qū)中的第一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)即0.002s和0.022,則判斷0.002s接收到的鍵值信息與0.022s接收到的鍵值信息是否相同,如果是,則將任意一個(gè)鍵值信息保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中,否則,將其中與在第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中;參見(jiàn)圖4,0.002s接收到的鍵值信息為a,0.022s接收到的鍵值信息也為2,兩者不相同,在第一預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息為a,則將與第一預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息a不相同的鍵值信息2保存在第四預(yù)設(shè)存儲(chǔ)區(qū)中;在本實(shí)施例中,在第四預(yù)設(shè)存儲(chǔ)區(qū)中保存的鍵值信息是鍵值信息流中的第2個(gè)和第5個(gè)鍵值信息,即ab,也就是用戶(hù)輸入的第二鍵值信息。實(shí)施例3本發(fā)明實(shí)施例3提供一種具有防密碼竊聽(tīng)功能的方法,如圖5所示,包括:USB設(shè)備與主機(jī)建立連接后,USB設(shè)備聲明自身為兩個(gè)設(shè)備,即USB KEY和鍵盤(pán),當(dāng)主機(jī)界面上顯示輸入密碼窗口后,所述窗口記錄窗口起始時(shí)間;所述USB KEY可以是CCID類(lèi)型設(shè)備或HID類(lèi)型設(shè)備或SCSI類(lèi)型設(shè)備;在本實(shí)施例中,所述窗口記錄所述窗口起始時(shí)間為Os ;步驟301:所述窗口向USB設(shè)備發(fā)送指令,要求USB設(shè)備按照指令內(nèi)容向主機(jī)發(fā)送對(duì)應(yīng)的鍵值信息,同時(shí)所述窗口將所述指令內(nèi)容保存在第五預(yù)設(shè)存儲(chǔ)區(qū)中;
具體的,在本實(shí)施例中,所述窗口向所述USB設(shè)備發(fā)送的指令中包含有鍵值信息和對(duì)應(yīng)的時(shí)間,所述窗口要求USB設(shè)備按照指令內(nèi)容,在對(duì)應(yīng)的時(shí)間點(diǎn)發(fā)送對(duì)應(yīng)的鍵值信息;參見(jiàn)圖6,所述窗口向USB設(shè)備發(fā)送的指令的內(nèi)容是:要求USB設(shè)備在Is的時(shí)間點(diǎn)上發(fā)送鍵值信息a,在1.8s的時(shí)間點(diǎn)上發(fā)送鍵值信息1,在2.5s的時(shí)間點(diǎn)上發(fā)送鍵值信息c ;步驟302:所述USB設(shè)備接收到指令后,記錄設(shè)備起始時(shí)間,并按照所述指令內(nèi)容,在相對(duì)設(shè)備起始時(shí)間的對(duì)應(yīng)時(shí)間點(diǎn)上向主機(jī)發(fā)送對(duì)應(yīng)的第一鍵值信息;在本實(shí)施例中,優(yōu)選的,所述對(duì)應(yīng)的時(shí)間為相對(duì)時(shí)間,即相對(duì)于設(shè)備起始時(shí)間的時(shí)間,除此之外,還可以是絕對(duì)時(shí)間;在本實(shí)施例中,以相對(duì)時(shí)間為例進(jìn)行說(shuō)明;參見(jiàn)圖6,USB設(shè)備記錄設(shè)備起始時(shí)間為Os ;USB設(shè)備接收到指令后,在相對(duì)設(shè)備起始時(shí)間的Is的時(shí)間點(diǎn)上向主機(jī)發(fā)送鍵值信息a,在1.8s的時(shí)間點(diǎn)上向主機(jī)發(fā)送鍵值信息I,在2.5的時(shí)間點(diǎn)上向主機(jī)發(fā)送鍵值信息c ;步驟303:所述窗口等待接收鍵值信息和對(duì)應(yīng)的時(shí)間,當(dāng)所述窗口每接收到一個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令;其中,所述窗口接收到的鍵值可以是USB設(shè)備發(fā)送的第一鍵值信息,也可以是用戶(hù)輸入的第二鍵值信息,但所述窗口沒(méi)有識(shí)別鍵值信息來(lái)源的機(jī)制,因此所述窗口每接收到一個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令;在本實(shí)施例中,為防止USB設(shè)備發(fā)送鍵值信息個(gè)數(shù)被竊聽(tīng),優(yōu)選的,當(dāng)所述窗口向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令時(shí),加入隨機(jī)數(shù)加密機(jī)制,USB設(shè)備在回應(yīng)個(gè)數(shù)時(shí)也帶有此隨機(jī)數(shù)加密;步驟304 =USB設(shè)備接收到所述窗口發(fā)送的指令后,回應(yīng)自身發(fā)送鍵值信息的個(gè)數(shù);步驟305:所述窗口接收到USB設(shè)備回應(yīng)的鍵值信息的個(gè)數(shù)后,計(jì)算需要在窗口界面上顯示預(yù)設(shè)字符的個(gè)數(shù),并在所述窗口界面上顯示預(yù)設(shè)字符;在本實(shí)施例中,優(yōu)選的,所述預(yù)設(shè)字符為“*”;其中,計(jì)算需要在窗口界面上顯示預(yù)設(shè)字符的個(gè)數(shù),具體為:例如,在本實(shí)施例中,當(dāng)所述窗口接收到第I個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令,USB設(shè)備在接收到此指令后,向主機(jī)發(fā)送自身向主機(jī)發(fā)送鍵值信息的個(gè)數(shù),如果USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)為0,則表示窗口接收到的鍵值信息是由用戶(hù)輸入的,在窗口界面上顯示一個(gè)預(yù)設(shè)字符,如果USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)為1,則表示窗口接收到的是USB設(shè)備發(fā)送的干擾信息,不在窗口界面上顯示;依此類(lèi)推,當(dāng)窗口接收到第N個(gè)字符后鍵值信息,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令,USB設(shè)備在接收到此指令后,向主機(jī)發(fā)送自身向主機(jī)發(fā)送鍵值信息的個(gè)數(shù),如果USB設(shè)備向主機(jī)發(fā)送的鍵值信息的個(gè)數(shù)為M,則表示用戶(hù)向主機(jī)輸入的鍵值信息的數(shù)量為N-M個(gè),如果N-M大于已顯示的預(yù)設(shè)字符的個(gè)數(shù),則在已顯示的預(yù)設(shè)字符之后再顯示一個(gè)預(yù)設(shè)字符,如果N-M等于已顯示的預(yù)設(shè)字符的個(gè)數(shù),則不在窗口界面上顯示;在本實(shí)施例中,在窗口界面上顯示預(yù)設(shè)字符,優(yōu)選的是步驟305中的方案,除此之夕卜,還可以是下述兩種方案:1、所述窗口在接收到鍵值信息后,在窗口界面窗口中不顯示任何信息;2、所述窗口在接收到鍵值信息后,全部在窗口界面中顯示;步驟306:所述窗口將接收到的鍵值信息流和各鍵值信息對(duì)應(yīng)的時(shí)間保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;參見(jiàn)圖6,當(dāng)窗口接收到鍵值a時(shí),將鍵值a和對(duì)應(yīng)的時(shí)間1.002s保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;當(dāng)窗口接收到鍵值a時(shí),將鍵值a與鍵值a組合成鍵值信息流aa,然后將鍵值a對(duì)應(yīng)的時(shí)間1.503s保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;當(dāng)窗口接收到鍵值I時(shí),將鍵值a、鍵值a和鍵值I組合成鍵值信息流aal,然后將鍵值I對(duì)應(yīng)的時(shí)間1.802s保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;當(dāng)窗口接收到鍵值c時(shí),將鍵值a、鍵值C、鍵值I和鍵值c組合成鍵值信息流aalc,然后將鍵值c對(duì)應(yīng)的時(shí)間2.504s保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;當(dāng)窗口接收到鍵值b時(shí),將鍵值a、鍵值a、鍵值1、鍵值c和鍵值b組合成鍵值信息流aalcb,然后將鍵值b對(duì)應(yīng)的時(shí)間2.753s保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;步驟307:所述窗口判斷是否結(jié)束輸入,如果是,則執(zhí)行步驟308,否則返回步驟303 ;其中,所述窗口判斷是否結(jié)束輸入是通過(guò)判斷確認(rèn)按鈕是否被按下,或是通過(guò)判斷是否接收到enter鍵值信息;步驟308:所述窗口計(jì)算所述第五預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值;參見(jiàn)圖6,所述第五預(yù)設(shè)存儲(chǔ)區(qū)中的第I個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值為:(0.002s,0.503,0.802,1.504,1.753);所述第五預(yù)設(shè)存儲(chǔ)區(qū)中的第2個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值為:(0.798s, 0.297,0.002,0.704,0.953);所述第五預(yù)設(shè)存儲(chǔ)區(qū)中的第3個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值為:(1.498s,0.997,0.698,0.004,0.253);步驟309:所述窗口判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟310,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的鍵值信息保存在第六預(yù)設(shè)存儲(chǔ)區(qū)中;在本實(shí)施例中,優(yōu)選的,所述預(yù)設(shè)時(shí)間間隔為用戶(hù)輸入鍵值信息的最小間隔的一半,例如,用戶(hù)Is之內(nèi)輸入5個(gè)鍵值信息,最小間隔是0.2s,則設(shè)定預(yù)設(shè)時(shí)間間隔為最小間隔的一半0.1s ;參見(jiàn)圖6,步驟308中計(jì)算的第五預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,不存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),則將第二預(yù)設(shè)存儲(chǔ)區(qū)中,1.802s接收到的鍵值信息I和2.753s接收到的鍵值信息b ;參見(jiàn)圖6,步驟308中,第五預(yù)設(shè)存儲(chǔ)區(qū)中的第一個(gè)鍵值信息、第二個(gè)鍵值信息和第三個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值均超過(guò)預(yù)設(shè)時(shí)間間隔,即將第二預(yù)設(shè)存儲(chǔ)區(qū)中,1.503s接收到的鍵值信息a和2.753s接收到的鍵值信息b保存在第六預(yù)設(shè)存儲(chǔ)區(qū)中;步驟310:所述窗口判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)鍵值信息保存在第六預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與保存在第五預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息在第六預(yù)設(shè)存儲(chǔ)區(qū)中;在本實(shí)施例中,所述第六預(yù)設(shè)存儲(chǔ)區(qū)中保存的是鍵值信息ab,則ab即為用戶(hù)鍵盤(pán)輸入的密碼。實(shí)施例4本發(fā)明實(shí)施例4提供一種防密碼竊聽(tīng)的方法,如圖7所示,包括:USB設(shè)備與主機(jī)建立連接后,聲明自身為兩個(gè)設(shè)備,即USB KEY和鍵盤(pán),當(dāng)在主機(jī)界面上顯示輸入密碼窗口后,執(zhí)行以下操作:所述USB KEY可以是CCID類(lèi)型設(shè)備或HID類(lèi)型設(shè)備或SCSI類(lèi)型設(shè)備;步驟401:所述窗口向USB設(shè)備發(fā)送進(jìn)行干擾的指令;步驟402:所述USB設(shè)備接收到所述指令后,通過(guò)自身聲明的鍵盤(pán)向主機(jī)發(fā)送第一鍵值信息,并將第一鍵值信息保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中;所述第一鍵值信息是USB設(shè)備連續(xù)隨機(jī)的向主機(jī)發(fā)送的信息,同時(shí)USB設(shè)備將第一鍵值信息保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中;步驟403:所述窗口等待接收鍵值信息,當(dāng)所述窗口每接收到一個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令,并將所述接收到的鍵值信息發(fā)送給所述USB設(shè)備;其中,所述窗口接收到的鍵值可以是USB設(shè)備發(fā)送的第一鍵值信息,也可以是用戶(hù)輸入的第二鍵值信息,但所述窗口沒(méi)有識(shí)別鍵值信息來(lái)源的機(jī)制,因此所述窗口每接收到一個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令;在本實(shí)施例中,為防止USB設(shè)備發(fā)送鍵值信息個(gè)數(shù)被竊聽(tīng),優(yōu)選的,當(dāng)所述窗口向USB設(shè)備發(fā)送查詢(xún)個(gè)數(shù)的指令時(shí),加入隨機(jī)數(shù)加密機(jī)制,USB設(shè)備在回應(yīng)個(gè)數(shù)信息時(shí)也帶有此隨機(jī)數(shù)加密;步驟404 =USB設(shè)備接收到所述窗口發(fā)送的指令后,回應(yīng)自身發(fā)送鍵值信息的個(gè)數(shù);步驟405:所述窗口接收到USB設(shè)備發(fā)送的回應(yīng)信息后解密得到USB設(shè)備發(fā)送鍵值信息的個(gè)數(shù),計(jì)算需要在窗口界面上顯示預(yù)設(shè)字符的個(gè)數(shù),并在所述窗口界面上顯示預(yù)設(shè)字符;在本實(shí)施例中,優(yōu)選的,所述預(yù)設(shè)字符為;其中,計(jì)算需要在窗口界面上顯示預(yù)設(shè)字符個(gè)數(shù),具體為:例如,在本實(shí)施例中,當(dāng)所述窗口接收到第I個(gè)鍵值信息后,向USB設(shè)備發(fā)送指令,USB設(shè)備在接收到此指令后,向主機(jī)發(fā)送自身向主機(jī)發(fā)送鍵值信息的個(gè)數(shù),如果USB設(shè)備向主機(jī)發(fā)送的個(gè)數(shù)為0,則表示窗口接收到的鍵值信息是由用戶(hù)輸入的,則在主機(jī)的輸入密碼窗口中顯示一個(gè)預(yù)設(shè)字符,如果USB設(shè)備向主機(jī)發(fā)送個(gè)數(shù)為1,則表示窗口接收到的是USB設(shè)備發(fā)送的干擾信息,則不在窗口界面上顯示;依次類(lèi)推,當(dāng)窗口接收到第N個(gè)字符后,向USB設(shè)備發(fā)送指令,USB設(shè)備在接收到此指令后,向主機(jī)發(fā)送自身向主機(jī)發(fā)送鍵值信息的個(gè)數(shù),如果USB設(shè)備向主機(jī)發(fā)送的個(gè)數(shù)為M,則表示用戶(hù)向主機(jī)輸入的鍵值數(shù)量為N-M個(gè),如果N-M大于已顯示的預(yù)設(shè)字符的個(gè)數(shù),則在已顯示的預(yù)設(shè)字符之后再加一個(gè)預(yù)設(shè)字符,如果N-M等于已顯示的預(yù)設(shè)字符的個(gè)數(shù),則不在窗口界面上顯示;在本實(shí)施例中,在窗口界面上顯示預(yù)設(shè)字符,優(yōu)選的是步驟405中的方案,除此之夕卜,還可以是:1、所述窗口在接收到鍵值信息后,在窗口界面窗口中不顯示任何信息;2、所述窗口在接收到鍵值信息后,全部以預(yù)設(shè)字符的形式在窗口界面中顯示;步驟406:所述USB設(shè)備接收到主機(jī)發(fā)送的鍵值信息后,判斷與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中保存的第一鍵值信息是否相同,如果是,則執(zhí)行步驟407,否則執(zhí)行步驟408 ;步驟407:所述USB設(shè)備將第一預(yù)設(shè)存儲(chǔ)區(qū)中與接收到的鍵值相同的第一鍵值信息刪除,執(zhí)行步驟409;步驟408:所述USB設(shè)備將接收到的鍵值信息保存在USB設(shè)備中的第七預(yù)設(shè)存儲(chǔ)區(qū)中,執(zhí)行步驟409;步驟409:所述窗口判斷是否結(jié)束輸入,如果是,則所述窗口向USB設(shè)備發(fā)送停止干擾的指令,執(zhí)行步驟410,否則返回執(zhí)行步驟403 ;步驟410:所述USB設(shè)備接收到所述指令后,停止向主機(jī)發(fā)送鍵值信息;在本實(shí)施例中,得到的第七預(yù)設(shè)存儲(chǔ)區(qū)中的信息就是用戶(hù)鍵盤(pán)輸入的密碼。實(shí)施例5本發(fā)明實(shí)施例5提供一種具有防密碼竊聽(tīng)功能的方法,如圖8所示,包括:當(dāng)USB設(shè)備與主機(jī)建立連接后,USB設(shè)備聲明自身為兩個(gè)設(shè)備,即USB KEY和鍵盤(pán),當(dāng)主機(jī)界面上顯示輸入密碼窗口時(shí),所述窗口記錄窗口起始時(shí)間;所述USB KEY可以是CCID類(lèi)型設(shè)備或HID類(lèi)型設(shè)備或SCSI類(lèi)型設(shè)備;參見(jiàn)圖9,所述窗口起始時(shí)間為Os ;步驟501:所述USB設(shè)備上電后,記錄設(shè)備起始時(shí)間,通過(guò)自身聲明的鍵盤(pán)向主機(jī)發(fā)送第一鍵值信息,并將所述第一鍵值信息和對(duì)應(yīng)的時(shí)間保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中;參見(jiàn)圖9,所述設(shè)備起始時(shí)間為Os ;所述第一鍵值信息為0ablab2,第一個(gè)鍵值信息O對(duì)應(yīng)的時(shí)間ls,第二個(gè)鍵值信息a對(duì)應(yīng)的時(shí)間1.5s,第三個(gè)鍵值信息b對(duì)應(yīng)的時(shí)間2s,第四個(gè)鍵值信息I對(duì)應(yīng)的時(shí)間2.3s,第五個(gè)鍵值信息a對(duì)應(yīng)的時(shí)間2.6s,第六個(gè)鍵值信息b對(duì)應(yīng)的時(shí)間為3.103s,第七個(gè)鍵值信息2對(duì)應(yīng)的時(shí)間為3.5s ;所述對(duì)應(yīng)的時(shí)間均為相對(duì)于設(shè)備起始時(shí)間的時(shí)間;步驟502:所述窗口等待接收鍵值信息,所述窗口將所述接收到的鍵值信息流和每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;所述窗口接收到的第一個(gè)鍵值信息是3,對(duì)應(yīng)的時(shí)間為0.3s ;所述窗口接收到的第二個(gè)鍵值信息是a,對(duì)應(yīng)的時(shí)間為0.6s ;
所述窗口接收到的第三個(gè)鍵值信息是C,對(duì)應(yīng)的時(shí)間為0.8s ;所述窗口接收到的第四個(gè)鍵值信息是b,對(duì)應(yīng)的時(shí)間為1.102s ;所述窗口接收到的第五個(gè)鍵值信息是d,對(duì)應(yīng)的時(shí)間為1.3s ;、所述窗口接收到的第六個(gè)鍵值信息是2,對(duì)應(yīng)的時(shí)間為1.503s ;步驟503:所述窗口判斷是否結(jié)束輸入,如果是,則執(zhí)行步驟504,否則返回執(zhí)行步驟 502 ;步驟504:所述窗口將第二預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息流和每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間發(fā)送給USB設(shè)備;步驟505:所述USB設(shè)備從第一預(yù)設(shè)存儲(chǔ)區(qū)中保存的第一個(gè)鍵值信息開(kāi)始,將第一個(gè)鍵值信息與第二個(gè)鍵值信息作為當(dāng)前數(shù)據(jù);步驟506:計(jì)算所述當(dāng)前數(shù)據(jù)中的鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差,判斷從第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中是否能夠查找到與當(dāng)前數(shù)據(jù)相同且時(shí)間差與當(dāng)前數(shù)據(jù)的時(shí)間差的差值在預(yù)設(shè)時(shí)間間隔內(nèi)的鍵值信息,如果是,則執(zhí)行步驟507,否則執(zhí)行步驟509 ;步驟507:判斷在第十預(yù)設(shè)存儲(chǔ)區(qū)中是否存在與當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息相同且所在位置也相同的信息,如果是,則將所述信息的當(dāng)前比較次數(shù)增加預(yù)設(shè)數(shù)值,執(zhí)行步驟508,否則將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息和當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息的位置保存在第十預(yù)設(shè)存儲(chǔ)區(qū)中,且將第十預(yù)設(shè)存儲(chǔ)區(qū)中的比較次數(shù)記為第一數(shù)值,執(zhí)行步驟508 ;所述第一數(shù)值可以是I ;步驟508:判斷是否存在與當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息,如果是,則將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息作為當(dāng)前數(shù)據(jù)執(zhí)行步驟506,否則執(zhí)行步驟510 ;步驟509:判斷是否存在與當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息,如果是,則將當(dāng)前數(shù)據(jù)中的第二個(gè)鍵值信息與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息作為當(dāng)前數(shù)據(jù)執(zhí)行步驟506,否則執(zhí)行步驟510 ;步驟510:查找所述預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息所在的位置;步驟511:將第一預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間和第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述比較次數(shù)最大的鍵值信息相同的時(shí)間記為第一時(shí)間,并計(jì)算從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,其余鍵值信息對(duì)應(yīng)的時(shí)間;在本實(shí)施例中,所述計(jì)算其余鍵值信息對(duì)應(yīng)的時(shí)間,具體為:將第一預(yù)設(shè)存儲(chǔ)區(qū)中的其余鍵值信息的時(shí)間記為每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第一預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間的差值再加上第一時(shí)間,將第二預(yù)設(shè)存儲(chǔ)區(qū)中的其余鍵值信息的時(shí)間記為每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第二預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間的差值再加上第一時(shí)間;步驟512 =USB設(shè)備從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,計(jì)算計(jì)算所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值;步驟513:所述USB設(shè)備判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟514,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的鍵值信息保存在第八預(yù)設(shè)存儲(chǔ)區(qū)中;步驟514:所述USB設(shè)備判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)鍵值信息保存在第八預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與在第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第八預(yù)設(shè)存儲(chǔ)區(qū)中,所述第八預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容即為用戶(hù)鍵盤(pán)輸入的密碼;參見(jiàn)圖9,從步驟505至步驟514,具體的實(shí)現(xiàn)過(guò)程為:將第一預(yù)設(shè)存儲(chǔ)區(qū)中的第一個(gè)鍵值信息O s和第二個(gè)鍵值信息a作為當(dāng)前數(shù)據(jù),計(jì)算第一個(gè)鍵值信息O對(duì)應(yīng)的時(shí)間I與第二個(gè)鍵值信息a對(duì)應(yīng)的時(shí)間1.5s的時(shí)間差為
0.5s,從第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中查找與鍵值信息O和鍵值信息a相同,而且時(shí)間差與當(dāng)前數(shù)據(jù)的時(shí)間差的差值在預(yù)設(shè)時(shí)間間隔內(nèi)的鍵值信息,經(jīng)查詢(xún)發(fā)現(xiàn)不存在這樣的鍵值信息,然后執(zhí)行步驟509 ;判斷可知存在與當(dāng)前數(shù)據(jù)Oa相鄰的下一鍵值信息b,因此將當(dāng)前數(shù)據(jù)的第二個(gè)鍵值信息a與相鄰的第三個(gè)鍵值信息b作為當(dāng)前數(shù)據(jù);計(jì)算第二個(gè)鍵值信息a對(duì)應(yīng)的時(shí)間1.5s與第三個(gè)鍵值信息b對(duì)應(yīng)的時(shí)間2s的時(shí)間差為0.5s,從第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中查找與鍵值信息a和鍵值信息b相同,而且時(shí)間差與當(dāng)前數(shù)據(jù)的時(shí)間差的差值在預(yù)設(shè)時(shí)間間隔內(nèi)的鍵值信息,經(jīng)查詢(xún)發(fā)現(xiàn),在第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中,存在鍵值信息a和b,而且a對(duì)應(yīng)的時(shí)間0.6s與b對(duì)應(yīng)的時(shí)間1.102s的時(shí)間差為0.502s,與當(dāng)前數(shù)據(jù)的時(shí)間差0.5s的差值0.002s在預(yù)設(shè)時(shí)間間隔內(nèi),執(zhí)行步驟507 ;判斷在第十預(yù)設(shè)存儲(chǔ)區(qū)中是否存在與當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息相同且所在位置也相同的信息,當(dāng)前數(shù)據(jù)的第一個(gè)鍵值信息為a,所在位置為2,經(jīng)查詢(xún)發(fā)現(xiàn),在第十預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中不存在鍵值信息a和所在位置2,因此,將鍵值信息a和所在位置2保存在第十預(yù)設(shè)存儲(chǔ)區(qū)中,且將第十預(yù)設(shè)存儲(chǔ)區(qū)中的比較次數(shù)記為1,執(zhí)行步驟508 ;判斷可知存在與當(dāng)前數(shù)據(jù)ab相鄰的下一鍵值信息1,將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息a與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息I作為當(dāng)前數(shù)據(jù)al,執(zhí)行步驟506 ;計(jì)算當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息a對(duì)應(yīng)的時(shí)間1.5s與第二個(gè)鍵值信息I對(duì)應(yīng)的時(shí)間2.3s的時(shí)間差為1.8s,從第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中查找與鍵值信息a和鍵值信息I相同,而且時(shí)間差與當(dāng)前數(shù)據(jù)的時(shí)間差的差值在預(yù)設(shè)時(shí)間間隔內(nèi)的鍵值信息,經(jīng)查詢(xún)發(fā)現(xiàn)不存在這樣的鍵值信息,然后執(zhí)行步驟509 ;判斷可知存在與當(dāng)前數(shù)據(jù)al相鄰的下一鍵值信息a,因此將當(dāng)前數(shù)據(jù)的第二個(gè)鍵值信息I與相鄰的下一鍵值信息a作為當(dāng)前數(shù)據(jù)Ia ;計(jì)算當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息I對(duì)應(yīng)的時(shí)間2.3s與第二個(gè)鍵值信息a對(duì)應(yīng)的時(shí)間2.6s的時(shí)間差為0.3s,從第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中查找與鍵值信息I和鍵值信息a相同,而且時(shí)間差與當(dāng)前數(shù)據(jù)的時(shí)間差的差值在預(yù)設(shè)時(shí)間間隔內(nèi)的鍵值信息,經(jīng)查詢(xún)發(fā)現(xiàn)不存在這樣的鍵值信息,然后執(zhí)行步驟509 ;判斷可知存在與當(dāng)前數(shù)據(jù)Ia相鄰的下一鍵值信息b,因此將當(dāng)前數(shù)據(jù)的第二個(gè)鍵值信息a與相鄰的下一鍵值信息b作為當(dāng)前數(shù)據(jù)ab ;計(jì)算當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息a對(duì)應(yīng)的時(shí)間2.6s與第二個(gè)鍵值信息b對(duì)應(yīng)的時(shí)間3.103s的時(shí)間差為0.503s,從第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中查找與鍵值信息a和鍵值信息b相同,而且時(shí)間差與當(dāng)前數(shù)據(jù)的時(shí)間差的差值在預(yù)設(shè)時(shí)間間隔內(nèi)的鍵值信息,經(jīng)查詢(xún)發(fā)現(xiàn),在第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中,存在鍵值信息a和b,而且a對(duì)應(yīng)的時(shí)間0.6s與b對(duì)應(yīng)的時(shí)間1.102s的時(shí)間差為0.502s,與當(dāng)前數(shù)據(jù)的時(shí)間差0.503s的差值0.0Ols在預(yù)設(shè)時(shí)間間隔內(nèi),執(zhí)行步驟507 ;判斷在第十預(yù)設(shè)存儲(chǔ)區(qū)中是否存在與當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息相同且所在位置也相同的信息,當(dāng)前數(shù)據(jù)的第一個(gè)鍵值信息為a,所在位置為5,經(jīng)查詢(xún)發(fā)現(xiàn),在第十預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中不存在所在位置為5的鍵值信息a,因此,將鍵值信息a和所在位置5保存在第十預(yù)設(shè)存儲(chǔ)區(qū)中,且將第十預(yù)設(shè)存儲(chǔ)區(qū)中的比較次數(shù)記為1,執(zhí)行步驟508 ;判斷可知存在與當(dāng)前數(shù)據(jù)ab相鄰的下一鍵值信息2,將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息a與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息2作為當(dāng)前數(shù)據(jù)a2,執(zhí)行步驟506 ;計(jì)算當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息a對(duì)應(yīng)的時(shí)間2.6s與第二個(gè)鍵值信息2對(duì)應(yīng)的時(shí)間3.5s的時(shí)間差為0.9s,從第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中查找與鍵值信息a和鍵值信息2相同,而且時(shí)間差與當(dāng)前數(shù)據(jù)的時(shí)間差的差值在預(yù)設(shè)時(shí)間間隔內(nèi)的鍵值信息,經(jīng)查詢(xún)發(fā)現(xiàn),在第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中,存在鍵值信息a和2,而且a對(duì)應(yīng)的時(shí)間0.6s與b對(duì)應(yīng)的時(shí)間1.503s的時(shí)間差為0.903s,與當(dāng)前數(shù)據(jù)的時(shí)間差0.9s的差值0.003s在預(yù)設(shè)時(shí)間間隔內(nèi),執(zhí)行步驟507 ;判斷在第十預(yù)設(shè)存儲(chǔ)區(qū)中是否存在與當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息相同且所在位置也相同的信息,當(dāng)前數(shù)據(jù)的第一個(gè)鍵值信息為a,所在位置為5,經(jīng)查詢(xún)發(fā)現(xiàn),在第十預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中存在所在位置為5的鍵值信息a,因此,將將第十預(yù)設(shè)存儲(chǔ)區(qū)中所在位置為5的鍵值信息a的比較次數(shù)I增加預(yù)設(shè)數(shù)值,記為2,執(zhí)行步驟508 ;判斷可知當(dāng)前數(shù)據(jù)a2不存在下一鍵值信息,因此執(zhí)行步驟510 ;從第十預(yù)設(shè)存儲(chǔ)區(qū)中找到比較次數(shù)最大的鍵值信息所在的位置,參見(jiàn)圖9,比較次數(shù)最大為2,鍵值信息為a,所在位置為5 ;將第一預(yù)設(shè)存儲(chǔ)區(qū)中的位置為5的鍵值信息a的時(shí)間記為第一時(shí)間,即Os,同時(shí)將第二預(yù)設(shè)存儲(chǔ)區(qū)中與之對(duì)應(yīng)的鍵值信息a的時(shí)間記為第一時(shí)間,即Os,然后計(jì)算第一預(yù)設(shè)存儲(chǔ)區(qū)及第二預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息的時(shí)間,具體計(jì)算方式為:從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,將第一預(yù)設(shè)存儲(chǔ)區(qū)中的b的時(shí)間記為鍵值信息b對(duì)應(yīng)的時(shí)間與位置為5的鍵值信息a的差值再加上第一時(shí)間,即(3.103s-2.6s+0s) =0.503s ;依次計(jì)算第一預(yù)設(shè)存儲(chǔ)區(qū)中其余鍵值信息的時(shí)間,得到新的時(shí)間分別為:a (Os),b (0.503s),2 (0.9s);用同樣的方式計(jì)算第二預(yù)設(shè)存儲(chǔ)區(qū)中其余鍵值信息的時(shí)間,得到新的時(shí)間分別為:3 (-0.3s),a (Os), c (0.2s), b (0.502s), d (0.7s), 2 (0.903s);計(jì)算第一預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息a與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值為:(0.3s,Os,0.2s,0.502s,0.7s,0.903s);計(jì)算第一預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息b與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值為:(0.803s,0.503s,0.303s,0.001s,0.197s,0.4s);計(jì)算第一預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息2與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值為:(1.2s,0.9s,0.7s,0.398s,0.2s,0.003s);所述USB設(shè)備判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),在本實(shí)施例中,不存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間時(shí)間內(nèi),則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的第一預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息3,c,d保存在第八預(yù)設(shè)存儲(chǔ)區(qū)中;得到的3cd即為用戶(hù)輸入的密碼。實(shí)施例6本發(fā)明實(shí)施例6提供一種防密碼竊聽(tīng)的方法,如圖10所示,包括:當(dāng)USB設(shè)備與主機(jī)建立連接后,USB設(shè)備聲明自身為兩個(gè)設(shè)備,即USB KEY和鍵盤(pán),當(dāng)主機(jī)界面上顯示輸入密碼窗口時(shí),所述窗口記錄窗口起始時(shí)間;所述USB KEY可以是CCID類(lèi)型設(shè)備或HID類(lèi)型設(shè)備或SCSI類(lèi)型設(shè)備;步驟601:所述USB設(shè)備上電后,記錄設(shè)備起始時(shí)間,通過(guò)自身聲明的鍵盤(pán)向主機(jī)發(fā)送第一鍵值信息,并將所述第一鍵值信息和對(duì)應(yīng)的時(shí)間保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中;步驟602:所述窗口等待接收鍵值信息,所述窗口將接收到的鍵值信息流和每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中;步驟603:所述窗口判斷是否結(jié)束輸入,如果是,則執(zhí)行步驟604,否則返回執(zhí)行步驟 602 ;步驟604:所述窗口向USB設(shè)備發(fā)送指令,要求USB設(shè)備將所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容返回給主機(jī);步驟605:所述USB設(shè)備接收到所述窗口發(fā)送的指令后,向主機(jī)返回第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容;步驟606:所述窗口接收到USB設(shè)備返回的第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容后,將第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容和第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容發(fā)送給服務(wù)器;步驟607:所述服務(wù)器接收到主機(jī)發(fā)送的第一預(yù)設(shè)存儲(chǔ)區(qū)和第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容后,計(jì)算所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值;步驟608:所述服務(wù)器從接收到的第一預(yù)設(shè)存儲(chǔ)區(qū)中的第一個(gè)鍵值信息開(kāi)始,將第一個(gè)鍵值信息與第二個(gè)鍵值信息作為當(dāng)前數(shù)據(jù);步驟609:所述服務(wù)器計(jì)算所述當(dāng)前數(shù)據(jù)中的鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差,判斷從第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中是否能夠查找到與當(dāng)前數(shù)據(jù)相同且時(shí)間差與當(dāng)前數(shù)據(jù)的時(shí)間差的差值在預(yù)設(shè)時(shí)間間隔內(nèi)的鍵值信息,如果是,則執(zhí)行步驟610,否則執(zhí)行步驟612 ;步驟610:所述服務(wù)器判斷在第十預(yù)設(shè)存儲(chǔ)區(qū)中是否存在與當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息相同且所在位置也相同的信息,如果是,則將所述信息的當(dāng)前比較次數(shù)增加預(yù)設(shè)數(shù)值,執(zhí)行步驟611,否則將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息和當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息的位置保存在第十預(yù)設(shè)存儲(chǔ)區(qū)中,且將第十預(yù)設(shè)存儲(chǔ)區(qū)中的比較次數(shù)記為第一數(shù)值,執(zhí)行步驟611 ;步驟611:所述服務(wù)器判斷是否存在與當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息,如果是,則將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息作為當(dāng)前數(shù)據(jù),執(zhí)行步驟609,否則執(zhí)行步驟613 ;步驟612:所述服務(wù)器判斷是否存在與當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息,如果是,則將當(dāng)前數(shù)據(jù)中的第二個(gè)鍵值信息與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息作為當(dāng)前數(shù)據(jù)執(zhí)行步驟609,否則執(zhí)行步驟613 ;步驟613:所述服務(wù)器查找所述預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息所在的位置,將第一預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間和第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述比較次數(shù)最大的鍵值信息相同的時(shí)間記為第一時(shí)間,并計(jì)算從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,其余鍵值信息對(duì)應(yīng)的時(shí)間;步驟614:所述服務(wù)器從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,計(jì)算計(jì)算所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值;在本實(shí)施例中,所述計(jì)算其余鍵值信息對(duì)應(yīng)的時(shí)間,具體為:將第一預(yù)設(shè)存儲(chǔ)區(qū)中的其余鍵值信息的時(shí)間記為每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第一預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間的差值再加上第一時(shí)間,將第二預(yù)設(shè)存儲(chǔ)區(qū)中的其余鍵值信息的時(shí)間記為每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第二預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間的差值再加上第一時(shí)間;步驟615:所述服務(wù)器判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟616,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的鍵值信息保存在第九預(yù)設(shè)存儲(chǔ)區(qū)中;步驟616:所述服務(wù)器判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)鍵值信息保存在第九預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與在第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第九預(yù)設(shè)存儲(chǔ)區(qū)中;在本實(shí)施例中,所述第九預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容即為用戶(hù)鍵盤(pán)輸入的密碼。
權(quán)利要求
1.一種防密碼竊聽(tīng)的方法,其特征在于,包括: USB設(shè)備與主機(jī)建立連接后,聲明自身為兩個(gè)設(shè)備,即USB KEY和鍵盤(pán); 步驟Al:所述USB設(shè)備通過(guò)自身聲明的鍵盤(pán)向所述主機(jī)發(fā)送第一鍵值信息,并將所述第一鍵值信息和與之對(duì)應(yīng)的時(shí)間保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中; 步驟B1:所述窗口等待接收鍵值信息,所述窗口將接收到的每個(gè)鍵值信息和與之對(duì)應(yīng)的時(shí)間保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中; 步驟Cl:所 述窗口判斷是否結(jié)束輸入,如果是,則執(zhí)行步驟D1,否則返回執(zhí)行步驟BI ;步驟Dl:所述窗口或服務(wù)器或所述USB設(shè)備根據(jù)所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容與第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容進(jìn)行預(yù)設(shè)計(jì)算,將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存,所述保存的鍵值信息即為用戶(hù)鍵盤(pán)輸入的密碼。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述USB設(shè)備聲明自身為兩個(gè)設(shè)備,即USBKEY和鍵盤(pán),其中,所述USB KEY可以是CCID類(lèi)型設(shè)備或HID類(lèi)型設(shè)備或SCSI類(lèi)型設(shè)備。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述與第一鍵值信息對(duì)應(yīng)的時(shí)間為絕對(duì)時(shí)間或相對(duì)時(shí)間,其中,所述絕對(duì)時(shí)間為USB設(shè)備內(nèi)部時(shí)鐘時(shí)間,所述相對(duì)時(shí)間為相對(duì)于設(shè)備起始時(shí)間的時(shí)間,所述設(shè)備起始時(shí)間具體為所述USB設(shè)備與主機(jī)連接上電時(shí)記錄的時(shí)間,或?yàn)樗鯱SB設(shè)備向主機(jī)發(fā)送的第一個(gè)鍵值信息時(shí)記錄的時(shí)間; 所述與窗口接收到的每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間為絕對(duì)時(shí)間或相對(duì)時(shí)間,其中,所述絕對(duì)時(shí)間為主機(jī)時(shí)鐘時(shí)刻,所述相對(duì)時(shí)間為相對(duì)與窗口起始時(shí)間的時(shí)間,所述窗口起始時(shí)間具體為當(dāng)主機(jī)界面上顯示輸入窗口后記錄的時(shí)間,或當(dāng)所述窗口接收到第一個(gè)鍵值信息時(shí)記錄的時(shí)間。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟Dl具體為: 步驟Dl-1:所述窗口將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容發(fā)送給所述USB設(shè)備; 步驟D2-2:所述USB設(shè)備接收到所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容后,根據(jù)所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容與第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容進(jìn)行預(yù)設(shè)計(jì)算,將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第八預(yù)設(shè)存儲(chǔ)區(qū)中,所述第八預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容即為用戶(hù)鍵盤(pán)輸入的密碼。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟D2-2中預(yù)設(shè)計(jì)算具體為: 步驟101:所述USB設(shè)備從所述第一預(yù)設(shè)存儲(chǔ)區(qū)中保存的第一個(gè)鍵值信息開(kāi)始,將第一個(gè)鍵值信息與第二個(gè)鍵值信息作為當(dāng)前數(shù)據(jù); 步驟102:所述USB設(shè)備計(jì)算所述當(dāng)前數(shù)據(jù)中的鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差,判斷從第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中是否能夠查找到與當(dāng)前數(shù)據(jù)相同且時(shí)間差與當(dāng)前數(shù)據(jù)的時(shí)間差的差值在預(yù)設(shè)時(shí)間間隔內(nèi)的鍵值信息,如果是,則執(zhí)行步驟103,否則執(zhí)行步驟105 ; 步驟103:所述USB設(shè)備判斷在第十預(yù)設(shè)存儲(chǔ)區(qū)中是否存在與當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息相同且所在位置也相同的信息,如果是,則將所述信息的當(dāng)前比較次數(shù)增加預(yù)設(shè)數(shù)值,執(zhí)行步驟104,否則將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息和當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息的位置保存在第十預(yù)設(shè)存儲(chǔ)區(qū)中,且將第十預(yù)設(shè)存儲(chǔ)區(qū)中的比較次數(shù)記為第一數(shù)值,執(zhí)行步驟 104 ; 步驟104:所述USB設(shè)備判斷是否存在與當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息,如果是,則將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息作為當(dāng)前數(shù)據(jù)執(zhí)行步驟102,否則執(zhí)行步驟106 ; 步驟105:所述USB設(shè)備判斷是否存在與當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息,如果是,則將當(dāng)前數(shù)據(jù)中的第二個(gè)鍵值信息與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息作為當(dāng)前數(shù)據(jù)執(zhí)行步驟102,否則執(zhí)行步驟106 ; 步驟106:所述USB設(shè)備查找所述預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息所在的位置,將第一預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間和第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述比較次數(shù)最大的鍵值信息相同的時(shí)間記為第一時(shí)間,并計(jì)算從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,其余鍵值信息對(duì)應(yīng)的時(shí)間; 步驟107:所述USB設(shè)備從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,計(jì)算計(jì)算所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的 時(shí)間差的絕對(duì)值; 步驟108:所述USB設(shè)備判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟109,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的鍵值信息保存在第八預(yù)設(shè)存儲(chǔ)區(qū)中; 步驟109:所述USB設(shè)備判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)鍵值信息保存在第八預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與在第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第八預(yù)設(shè)存儲(chǔ)區(qū)中,所述第八預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容即為用戶(hù)鍵盤(pán)輸入的密碼。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟Dl具體為: 步驟Dl-1 1:所述窗口向所述USB設(shè)備發(fā)送指令,要求USB設(shè)備將所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容返回給主機(jī); 步驟D1-12:所述USB設(shè)備接收到所述窗口發(fā)送的指令后,向主機(jī)返回所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容; 步驟D1-13:所述窗口接收到所述USB設(shè)備返回的第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容后,將所述第一預(yù)設(shè)存儲(chǔ)區(qū)和第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容發(fā)送給服務(wù)器。
步驟D1-14:所述服務(wù)器根據(jù)接收到所述第一預(yù)設(shè)存儲(chǔ)區(qū)和第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容進(jìn)行預(yù)設(shè)計(jì)算,將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第九預(yù)設(shè)存儲(chǔ)區(qū)中,所述第九預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容即為用戶(hù)鍵盤(pán)輸入的密碼。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟D1-14中預(yù)設(shè)計(jì)算具體為: 步驟201:所述服務(wù)器從接收到的第一預(yù)設(shè)存儲(chǔ)區(qū)中的第一個(gè)鍵值信息開(kāi)始,將第一個(gè)鍵值信息與第二個(gè)鍵值信息作為當(dāng)前數(shù)據(jù); 步驟202:所述服務(wù)器計(jì)算所述當(dāng)前數(shù)據(jù)中的鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差,判斷從第二預(yù)設(shè)存儲(chǔ)區(qū)的內(nèi)容中是否能夠查找到與當(dāng)前數(shù)據(jù)相同且時(shí)間差與當(dāng)前數(shù)據(jù)的時(shí)間差的差值在預(yù)設(shè)時(shí)間間隔內(nèi)的鍵值信息,如果是,則執(zhí)行步驟203,否則執(zhí)行步驟205 ; 步驟203:所述服務(wù)器判斷在第十預(yù)設(shè)存儲(chǔ)區(qū)中是否存在與當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息相同且所在位置也相同的信息,如果是,則將所述信息的當(dāng)前比較次數(shù)增加預(yù)設(shè)數(shù)值,執(zhí)行步驟204,否則將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息和當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息的位置保存在第十預(yù)設(shè)存儲(chǔ)區(qū)中,且將第十預(yù)設(shè)存儲(chǔ)區(qū)中的比較次數(shù)記為第一數(shù)值,執(zhí)行步驟.204 ; 步驟204:所述服務(wù)器判斷是否存在與當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息,如果是,則將當(dāng)前數(shù)據(jù)中的第一個(gè)鍵值信息與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息作為當(dāng)前數(shù)據(jù)執(zhí)行步驟.202,否則執(zhí)行步驟206 ; 步驟205:所述服務(wù)器判斷是否存在與當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息,如果是,則將當(dāng)前數(shù)據(jù)中的第二個(gè)鍵值信息與所述當(dāng)前數(shù)據(jù)相鄰的下一鍵值信息作為當(dāng)前數(shù)據(jù)執(zhí)行步驟.202,否則執(zhí)行步驟206 ; 步驟206:所述服務(wù)器查找所述預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息所在的位置,將第一預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間和第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述比較次數(shù)最大的鍵值信息相同的時(shí)間記為第一時(shí)間,并計(jì)算從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,其余鍵值信息對(duì)應(yīng)的時(shí)間; 步驟207:所述服務(wù)器從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,計(jì)算計(jì)算所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值; 步驟208:所述服務(wù)器判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟616,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的鍵值信息保存在第九預(yù)設(shè)存儲(chǔ)區(qū)中; 步驟209:所述服務(wù)器判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)鍵值信息保存在第九預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與在第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第九預(yù)設(shè)存儲(chǔ)區(qū)中。
8.根據(jù)權(quán)利要求5或7所述的方法,其特征在于, 所述計(jì)算從所述比較次數(shù)最大的鍵值信息所在的位置開(kāi)始,其余鍵值信息對(duì)應(yīng)的時(shí)間,具體為:將第一預(yù)設(shè)存儲(chǔ)區(qū)中的其余鍵值信息的時(shí)間記為每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第一預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間的差值再加上第一時(shí)間,將第二預(yù)設(shè)存儲(chǔ)區(qū)中的其余鍵值信息的時(shí)間記為每個(gè)鍵值信息對(duì)應(yīng)的時(shí)間與第二預(yù)設(shè)存儲(chǔ)區(qū)中比較次數(shù)最大的鍵值信息的時(shí)間的差值再加上第一時(shí)間。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述USB設(shè)備與主機(jī)建立連接后,聲明自身為兩個(gè)設(shè)備,即USB KEY和鍵盤(pán)之后還包括:所述窗口向USB設(shè)備發(fā)送進(jìn)行干擾的指令。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述步驟Cl與步驟Dl之間還包括:所述窗口向USB設(shè)備發(fā)送停止干擾的指令,所述USB設(shè)備接收到所述指令后,停止發(fā)送干擾信息。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述步驟Dl具體為: 步驟SOl:所述窗口將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容發(fā)送給所述USB設(shè)備,并清除所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容; 步驟S02:所述USB設(shè)備根據(jù)所述第一預(yù)設(shè)存儲(chǔ)區(qū)和所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容進(jìn)行預(yù)設(shè)計(jì)算,將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中,所述第三預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容即為用戶(hù)鍵盤(pán)輸入的密碼。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述步驟S02中預(yù)設(shè)計(jì)算具體為: 步驟S02-1:所述USB設(shè)備計(jì)算所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值; 步驟S02-2:所述USB設(shè)備判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟S02-3,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的鍵值信息保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中; 步驟S02-3:所述USB設(shè)備判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第三預(yù)設(shè)存儲(chǔ)區(qū)中,所述第三預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息即為用戶(hù)鍵盤(pán)輸入的密碼。
13.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述步驟Dl具體為: 步驟Sll:所述窗口向USB設(shè)備發(fā)送指令,要求USB設(shè)備向主機(jī)返回第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容; 步驟S12:USB設(shè)備接收到所述窗口發(fā)送的指令后,將第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容返回給主機(jī),然后將所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容清除; 步驟S13:所述窗口接收到USB設(shè)備返回的第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容后,將所述第一預(yù)設(shè)存儲(chǔ)區(qū)和第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容發(fā)送給服務(wù)器; 步驟S14:所述服務(wù)器根據(jù)接收到的所述第一預(yù)設(shè)存儲(chǔ)區(qū)和第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容進(jìn)行預(yù)設(shè)計(jì)算,將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第四預(yù)設(shè)存儲(chǔ)區(qū)中,所述第四預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容即為用戶(hù)鍵盤(pán)輸入的密碼。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于,所述步驟S14具體為: 步驟S14-1:所述服務(wù)器計(jì)算所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值; 步驟S14-2:所述服務(wù)器判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟S14-3,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的鍵值信息保存在第四預(yù)設(shè)存儲(chǔ)區(qū)中; 步驟S14-3:所述服務(wù)器判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)保存在第四預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息在第四預(yù)設(shè)存儲(chǔ)區(qū)中,所述第四預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息即為用戶(hù)鍵盤(pán)輸入的密碼。
15.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟Al之前還包括:所述窗口向USB設(shè)備發(fā)送指令,要求USB設(shè)備按照指令內(nèi)容中的時(shí)間發(fā)送對(duì)應(yīng)的鍵值信息,同時(shí)所述窗口將所述指令內(nèi)容保存在第五預(yù)設(shè)存儲(chǔ)區(qū)中。
16.根據(jù)權(quán)利要求15所述的方法,其特征在于,所述步驟Al修改為:所述USB設(shè)備接收到指令后,在所述指令內(nèi)容中指定的時(shí)間點(diǎn)上發(fā)送對(duì)應(yīng)的第一鍵值信息。
17.根據(jù)權(quán)利要求16所述的方法,其特征在于,所述步驟Dl具體為: 步驟S21:所述窗口計(jì)算所述第五預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間與所述第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息對(duì)應(yīng)的時(shí)間的時(shí)間差的絕對(duì)值; 步驟S22:所述窗口判斷第一預(yù)設(shè)存儲(chǔ)區(qū)中的每一個(gè)鍵值信息與第二預(yù)設(shè)存儲(chǔ)區(qū)中的各鍵值信息的時(shí)間差的絕對(duì)值中,是否存在相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi),如果是,則執(zhí)行步驟S23,否則將所述絕對(duì)值超過(guò)預(yù)設(shè)時(shí)間間隔的鍵值信息保存在第六預(yù)設(shè)存儲(chǔ)區(qū)中; 步驟S23:所述窗口判斷在鍵值信息流中,所述相鄰的兩個(gè)絕對(duì)值在預(yù)設(shè)時(shí)間間隔內(nèi)的對(duì)應(yīng)的兩個(gè)鍵值信息是否相同,如果是,則將任意一個(gè)保存在第六預(yù)設(shè)存儲(chǔ)區(qū)中,否則將其中與第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存在第六預(yù)設(shè)存儲(chǔ)區(qū)中,所述第六預(yù)設(shè)存儲(chǔ)區(qū)中的鍵值信息即為用戶(hù)鍵盤(pán)輸入的密碼。
18.根據(jù)權(quán)利要求1至17所述的方法,其特征在于,所述步驟Cl與步驟Dl之間還包括: 步驟S31:所述窗口等待接收鍵值信息,當(dāng)所述窗口每接收到一個(gè)鍵值信息后,向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令; 步驟S32:所述USB設(shè)備接收到所述窗口發(fā)送的指令后,回應(yīng)自身發(fā)送鍵值信息的個(gè)數(shù),所述窗口接收到USB設(shè)備發(fā)送的回應(yīng)信息后解密得到USB設(shè)備發(fā)送的個(gè)數(shù),計(jì)算需要在窗口界面上顯示預(yù)設(shè)字符的個(gè)數(shù),并在所述窗口界面上顯示預(yù)設(shè)字符。
19.一種防密碼竊聽(tīng)的方 法,其特征在于,包括: 當(dāng)USB設(shè)備與主機(jī)建立連接后,USB設(shè)備聲明自身為兩個(gè)設(shè)備,即USB KEY和鍵盤(pán),當(dāng)主機(jī)界面上顯示輸入密碼窗口后,所述窗口向USB設(shè)備發(fā)送進(jìn)行干擾的指令,所述USB設(shè)備接收到所述指令后,通過(guò)自身聲明的鍵盤(pán)向主機(jī)發(fā)送第一鍵值信息,并將第一鍵值信息保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中; 步驟A2:所述窗口等待接收鍵值信息,所述窗口每接收到一個(gè)鍵值信息后,將所述接收到的一個(gè)鍵值信息發(fā)送給USB設(shè)備; 步驟B2:所述USB設(shè)備每接收到主機(jī)發(fā)送的一個(gè)鍵值信息后,與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中保存的第一鍵值信息進(jìn)行比較,如果相同,則執(zhí)行步驟C2,否則執(zhí)行步驟D2 ; 步驟C2:所述USB設(shè)備將第一預(yù)設(shè)存儲(chǔ)區(qū)中保存的與接收到的鍵值信息相同的鍵值信息刪除,執(zhí)行步驟E2; 步驟D2:所述USB設(shè)備將第一預(yù)設(shè)存儲(chǔ)區(qū)中保存的與接收到的鍵值信息不相同的鍵值信息保存在第七預(yù)設(shè)存儲(chǔ)區(qū)中,執(zhí)行步驟E2 ; 步驟E2:所述窗口判斷確認(rèn)按鈕是否被按下,如果是,則向所述USB設(shè)備發(fā)送結(jié)束干擾的指令,執(zhí)行步驟F2,否則返回執(zhí)行步驟A2 ; 步驟F2:所述USB設(shè)備接收到所述指令后,停止向主機(jī)發(fā)送鍵值信息。
20.根據(jù)權(quán)利要求19所述的方法,其特征在于,所述USB設(shè)備聲明自身為兩個(gè)設(shè)備,SPUSB KEY和鍵盤(pán),其中,所述USB KEY可以是CCID類(lèi)型設(shè)備或HID類(lèi)型設(shè)備或SCSI類(lèi)型設(shè)備。
21.根據(jù)權(quán)利要求19所述的方法,其特征在于,所述步驟A2與步驟B2之間還包括: 步驟S41:所述窗口向USB設(shè)備發(fā)送查詢(xún)USB設(shè)備向主機(jī)發(fā)送鍵值信息的個(gè)數(shù)的指令; 步驟S42 =USB設(shè)備接收到所述窗口發(fā)送的指令后,回應(yīng)自身發(fā)送鍵值信息的個(gè)數(shù),所述窗口接收到USB設(shè)備發(fā)送的回應(yīng)信息后解密得到USB設(shè)備發(fā)送的個(gè)數(shù),計(jì)算需要在窗口界面上顯示預(yù)設(shè)字符的個(gè)數(shù) ,并在所述窗口界面上顯示預(yù)設(shè)字符。
全文摘要
本發(fā)明公開(kāi)了一種防密碼竊聽(tīng)的方法,屬于信息安全領(lǐng)域,所述方法包括當(dāng)USB設(shè)備與主機(jī)建立連接后,聲明自身為兩個(gè)設(shè)備,即USB KEY和鍵盤(pán),所述USB設(shè)備向主機(jī)發(fā)送第一鍵值信息,并將所述第一鍵值信息和與之對(duì)應(yīng)的時(shí)間保存在第一預(yù)設(shè)存儲(chǔ)區(qū)中,窗口每接收到一個(gè)鍵值信息時(shí),將其與對(duì)應(yīng)的時(shí)間保存在第二預(yù)設(shè)存儲(chǔ)區(qū)中,當(dāng)窗口結(jié)束輸入時(shí),所述窗口或服務(wù)器或USB設(shè)備根據(jù)所述第一預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容與第二預(yù)設(shè)存儲(chǔ)區(qū)中的內(nèi)容進(jìn)行預(yù)設(shè)計(jì)算,將所述第二預(yù)設(shè)存儲(chǔ)區(qū)中與所述第一預(yù)設(shè)存儲(chǔ)區(qū)中不相同的鍵值信息保存,所述保存的鍵值信息即為用戶(hù)鍵盤(pán)輸入的密碼,采用本發(fā)明能夠有效的增加黑客竊取用戶(hù)信息的難度,提高了設(shè)備的安全性。
文檔編號(hào)G06F21/45GK103218558SQ201310082300
公開(kāi)日2013年7月24日 申請(qǐng)日期2013年3月15日 優(yōu)先權(quán)日2013年3月15日
發(fā)明者陸舟, 于華章 申請(qǐng)人:飛天誠(chéng)信科技股份有限公司