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

擊鍵特征數據采集系統設計*

2015-11-08 03:57:30
新技術新工藝 2015年1期
關鍵詞:工程

李 艷

(西安職業技術學院,陜西 西安710077)

隨著網絡技術的發展,信息安全顯得日益重要。通常身份認證系統的方式有很多,基于擊鍵特征的身份認證利用鍵盤提取用戶特征,不需要其他設備,是一種價格低廉,使用便利的認證方式。本設計主要分為2部分:用于實現鍵盤消息截取的鍵盤鉤子dll動態鏈接庫的建立以及主函數的編寫。其中,dll動態鏈接庫主要實現的功能是將用戶輸入的按鍵信息保存到工程目錄下以及設置按鍵以屏蔽鍵盤消息;主函數中除了調用動態鏈接庫以外,主要完成單鍵持續時間和按鍵間隔時間的采集。試驗采用的是MFC,即基于對話框的MFC工程。

1 動態鏈接庫建立

1.1 dll主程序設計

鍵盤鉤子安裝好后,則在主函數調用時,一旦有按鍵消息(按鍵按下或彈起),就會觸發鍵盤鉤子函數,截獲消息并會進入過程函數進行相應處理,過程函數是處理鍵盤消息的主要函數。本試驗中,要求將鍵盤上按下的鍵記錄在工程目錄下。在開始編寫前,首先聲明鉤子過程函數為:

在進行鉤子過程編寫時,設計實現的是將按鍵保存到工程目錄下的“key.txt”文件中,因此將用到c中的文件類型函數,可以用fopen()函數來實現打開文件。本設計采用的是“a+”,表示為讀寫打開一個文本文件,當字符輸入完成后,可用fwrite函數輸入一組數據到文件中,fwrite用來寫入一個數據塊,它的一般調用形式為fwrite(buffer,zise,count,fp)。字符的保存機理為首先將鍵盤的虛擬鍵碼保存,然后再利用ToAscii函數將虛擬鍵碼或按鍵狀態轉換成相應的字符。ToAscii函數的的原型為:

1.2 函數導出

處理函數編好后,必須將要在主函數中調用的函數導出,本試驗需要導出的函數為InstallHook()與EndHook()函數。調用InstallHook()函數,當有按鍵消息時,便會觸發鉤子函數,進入鉤子過程進行處理;當不需要鍵盤鉤子時,調用EndHook()函數,卸載鉤子。在源文件中添加關鍵字__declspec(dllexport)來聲明要導出的函數,在源文件中添加一頭文件KB.h,添加下述代碼:

1.3 dll與lib文件生成

在完成上述步驟,即鉤子安裝,鉤子過程處理,鉤子卸載,函數導出一系列工作之后,點擊“編譯”與“建立”按鈕,在工程Debug目錄下生成2個文件,KB.lib與KB.dll。至此,一個動態鏈接庫完成建立,其功能主要為保存按鍵信息。

2 主函數設計

2.1 程序界面設計

在VC++6.0環境下新建一個基于對話框的MFC AppWizard(exe)工程,工程命名為特征值采集,在選項“ResuorceView”的“test resuorce”下選擇“Dialog”,選擇第2項“IDD_TEST_DIALOG”,點擊打開設置應用程序界面,添加4個按鈕,ID屬性分別為IDC_BUTTON1、IDC_BUTTON2、IDC_BUTTON3、IDC_BUTTON4,Caption屬性分別為獲取單鍵持續時間(毫秒)、獲取兩鍵間隔時間(毫秒)、取消按鍵信息、保存按鍵信息。按下對應按鈕會實現相應的功能。

2.2 主程序編寫

2.2.1 獲取單鍵持續時間與按鍵間隔時間

為在對話框中響應按鍵按下及彈起消息,需要在CtestDlg類下添加函數PreTranslateMessage(MSG* pMsg),右擊添加虛擬函數PreTranslateMessage(),通過重載這個函數,可以改變MFC的消息控制流程,甚至可以做一個全新的控制流出來。利用PreTranslateMessage()可以攔截按鍵消息,在窗口進行響應。右擊CtestDlg類,選擇“Add Virtual Function”,在其下選擇“PreTranslateMessage”并添加,就可以在其下進行按鍵攔截和處理。PreTranslateMessage函數如下:

本文主要采用高精度計時器QueryPerformanceFrequency()和 QueryPerformanceCounter()函數獲取單鍵持續時間與兩鍵間隔時間。在計時之前,需要調用QueryPerformanceFrequency()函數獲取計數器的頻率nFreq,之后為獲取單鍵持續時間與兩鍵間隔時間,必須截獲按鍵按下消息(WM_KEYDOWN)和釋鍵消息(WM_KEYUP),每當按鍵按下或彈起時,調用QueryPerformanceCounter()函數獲取當前計數值nBeginTime.QuadPart與nEndTime.QuadPart,可記為t1與t2,則單鍵持續時間為time1=(t2-t1)/nFreq。類似地,兩鍵間隔時間可用同樣的方法測得。由于按鍵按下和釋放消息都要截獲處理,因此可用switch語句實現:

結果為雙精度型,單位為ms。如此便獲得了單鍵持續時間,由于本設計設置為獲取6位任意字符的單鍵持續時間和兩鍵間隔時間,可定義兩個雙精度型全局數組time[6]和time[5],分別用于存放六個按鍵的持續時間和兩兩間隔時間,并設置1個變量i,共判斷6次,以上述同樣的方法獲得兩種按鍵特征值。

2.2.2 動態鏈接庫調用

動態鏈接庫編譯后,需要在主程序中對其進行調用,調用方法采用隱式加載的方式,即將工程KB\Debug目錄下生成的dll文件拷貝至主函數特征值采集工程目錄下,并在工程下選擇工程,設置、選擇連接選項卡,在對象/庫模塊下添加靜態庫KB.lib的路徑,由于本設計定的兩工程在同一目錄下,可添加的路徑為:…\KB\Debug\KB.lib.

2.2.3 按鈕功能實現

本設計在程序界面設置了4個按鈕,ID為IDC_BUTTON1、IDC_BUTTON2、IDC_BUTTON3、IDC_BUTTON4,Caption屬性分別為獲取單鍵持續時間(毫秒)、獲取兩鍵間隔時間(毫秒)、取消按鍵信息、保存按鍵信息,設計要求按下時實現相應的功能,其中按下IDC_BUTTON1和IDC_BUTTON2要求顯示結果,即數組time[6]與time[5]的各個元素值,本設計采用MessageBox簡單顯示結果,使用Cstring的Format方法將雙精度型time[6]與time[5]元素轉換成Cstring字符串。打開程序設計界面,雙擊IDC_BUTTON1,跳轉到如下程序:

在上述程序中添加Format格式轉換代碼,并用MessageBox對話框顯示結果,本設計將double型轉換為Cstring,因此可用%lf格式轉換:

類似地,雙擊IDC_BUTTON2,在函數void CTestDlg::OnButton2()下用同樣的方法可將time[5]中的各個元素顯示。

IDC_BUTTON3的功能是取消按鍵信息的保存,信息的保存是在dll中實現的,因此,在主函數中,只需簡單地調用EndHook()將鉤子卸載就行,這樣就取消了鉤子的功能。工程目錄下的key.txt文件將不會保存用戶輸入的信息。函數如下:

void CTestDlg::OnButton3()

//TODO:Add your control notification handler code here

EndHook();

IDC_BUTTON4用于保存輸入信息,只需調用InstallHook()即可。函數如下:

void CTestDlg::OnButton4()

//TODO:Add your control notification handler code here

InstallHook();

通過試驗驗證,擊鍵特征數據采集系統能夠很好地采集用戶擊鍵時的按鍵持續時間和間隔時間,為后續用戶擊鍵特征的識別打下了良好基礎。

[1]曲維光,宋如順.基于用戶擊鍵特征識別的用戶認證系統[J].計算機工程與應用,2002,39(16):69-70

[2]朱明,周津,王繼康.基于擊鍵特征的用戶身份認證新方法[J].計算機工程,2002,28(10):138-140.

猜你喜歡
工程
《工程爆破》》征稿征訂
工程爆破(2022年3期)2022-07-26 01:58:56
《工程爆破》征稿簡則
工程爆破(2022年2期)2022-06-17 14:13:56
子午工程
太空探索(2016年6期)2016-07-10 12:09:06
工程
工程
工程
工程
工程
工程
工程
主站蜘蛛池模板: 国产在线拍偷自揄拍精品| 国产精品无码在线看| 国产99在线观看| 国产微拍一区| 国产青榴视频| lhav亚洲精品| 91人妻日韩人妻无码专区精品| 亚洲无码视频喷水| 欧美综合区自拍亚洲综合绿色| 婷婷五月在线视频| 婷婷六月色| 性欧美在线| 久久国产精品波多野结衣| 怡红院美国分院一区二区| 色成人综合| 中文字幕乱妇无码AV在线| 色婷婷狠狠干| 五月婷婷亚洲综合| 国产在线高清一级毛片| 国产欧美精品专区一区二区| 亚洲天堂免费| 欧美一级在线播放| 91啪在线| 色老二精品视频在线观看| 在线观看欧美国产| 国产成人精品无码一区二| 国产美女视频黄a视频全免费网站| 日本一区二区三区精品视频| 欧美 亚洲 日韩 国产| 国产国语一级毛片在线视频| 免费国产小视频在线观看| 熟女视频91| 精品三级网站| 热这里只有精品国产热门精品| 国产高清在线观看91精品| 成人久久精品一区二区三区| 亚洲性色永久网址| 亚洲国产日韩在线观看| 国产高潮视频在线观看| 日韩一区二区在线电影| 亚洲精品国产日韩无码AV永久免费网 | 2021国产精品自拍| 成人韩免费网站| 亚洲色图欧美一区| 亚洲中文字幕久久无码精品A| 国产精品流白浆在线观看| 久久先锋资源| 国产精品久久久久久久久久久久| 久久综合丝袜长腿丝袜| 国产视频资源在线观看| 日本欧美精品| 在线国产资源| 亚洲美女AV免费一区| 人妻一区二区三区无码精品一区| 青草午夜精品视频在线观看| 亚洲欧美成人综合| a国产精品| 日韩高清在线观看不卡一区二区 | 日本一区二区三区精品视频| 97超爽成人免费视频在线播放| 熟女日韩精品2区| 欧美啪啪一区| 色婷婷亚洲十月十月色天| 国产精品无码作爱| 欧美性猛交一区二区三区| 婷婷99视频精品全部在线观看| 精品久久国产综合精麻豆| 亚洲二区视频| 亚洲人成电影在线播放| 99热在线只有精品| av午夜福利一片免费看| 亚洲综合色区在线播放2019| 人人91人人澡人人妻人人爽| 精品欧美一区二区三区久久久| 熟妇丰满人妻av无码区| 久久久噜噜噜| 99视频在线免费观看| 美女扒开下面流白浆在线试听| 久久精品中文字幕免费| 91美女视频在线| 永久成人无码激情视频免费| 免费国产无遮挡又黄又爽|