本發(fā)明涉及電子產品領域,尤其涉及一種在線解鎖的實現方法及裝置。
背景技術:
智能密鑰設備是一種帶有處理器和存儲器的小型硬件裝置,它可通過計算機的數據通訊接口與計算機連接。智能密鑰設備通過內置的單片機或智能卡芯片完成密鑰的生成以及密鑰的安全存儲,其中可預置加密算法功能,且與密鑰相關的運算完全在智能密鑰設備內部運行,使得智能密鑰設備具有抗攻擊的特性,安全性極高。
現有技術中,智能密鑰設備(USB Key)一般是通過校驗用戶輸入的PIN碼(personal identification number,個人識別碼)正確與否來驗證該用戶的身份是否合法。具體的校驗過程包括:智能密鑰設備與計算機相連,用戶通過計算機向智能密鑰設備輸入PIN碼,智能密鑰設備自動校驗該PIN碼的正確性。當用戶輸入的PIN碼校驗正確時,允許該用戶操作智能密鑰設備;當用戶輸入的PIN碼校驗錯誤、且錯誤的次數達到了預先設定的最大值時,智能密鑰設備將該用戶的PIN碼鎖定,用戶將無法再使用該智能密鑰設備,用戶需要將該智能密鑰設備拿給管理員對PIN碼進行解鎖?,F有技術中,管理員對PIN碼進行解鎖一般通過手動輸入sopin(管理員密碼)來實現,工作量太大;而且每次解碼使用的sopin都相同,存在安全隱患。
技術實現要素:
本發(fā)明的目的是為了克服現有技術的不足,提供一種在線解鎖的實現方法及裝置。
本發(fā)明提供了一種在線解鎖的實現方法,包括:
步驟S1:當裝置接收到用戶輸入的用戶信息時,判斷所述用戶信息是否正確,是則執(zhí)行步驟S2,否則結束;
步驟S2:所述裝置獲取智能密鑰設備的序列號,并判斷所述智能密鑰設備的序列號是否與所述用戶信息匹配,是則執(zhí)行步驟S3,否則結束;
步驟S3:所述裝置根據所述智能密鑰設備的序列號獲取對應的管理員密碼;
步驟S4:所述裝置使用所述管理員密碼對所述智能密鑰設備進行解鎖操作。
其中,所述步驟S1包括:當所述裝置接收到用戶輸入的用戶信息時,判斷所述用戶信息是否與保存的用戶信息匹配,是則執(zhí)行步驟S2,否則結束。
其中,所述裝置獲取智能密鑰設備的序列號與判斷所述智能密鑰設備的序列號是否與所述用戶信息匹配之間包括:所述裝置判斷是否獲取到所述智能密鑰設備的序列號,是則繼續(xù),否則結束。
其中,所述裝置獲取智能密鑰設備的序列號,具體為:所述裝置通過第一接口獲取所述智能密鑰設備的序列號。
其中,所述裝置判斷是否獲取到所述智能密鑰設備的序列號,具體為:所述裝置判斷所述第一接口的返回值是否為預設值,是則獲取到所述智能密鑰設備的序列號,否則未獲取到所述智能密鑰設備的序列號。
其中,所述步驟S1之前包括:當裝置接收到解鎖觸發(fā)信息時,彈出解鎖頁面并等待用戶輸入用戶信息,執(zhí)行步驟S1。
其中,所述步驟S4中如解鎖成功則還包括:重新設置個人識別碼并通知用戶。
其中,所述步驟S4包括:所述裝置將所述管理員密碼作為參數調用第二接口進行驗證,如驗證成功則調用第三接口重新設置所述智能密鑰設備的個人識別碼,并判斷所述第三接口是否返回真值,是則解鎖成功,否則解鎖失敗,結束,如驗證失敗則解鎖失敗,結束。
其中,所述裝置包括客戶端程序和后臺服務器,所述步驟S3包括:所述客戶端程序根據所述智能密鑰設備的序列號從后臺服務器中獲取對應的管理員密碼。
其中,所述裝置為客戶端程序,所述步驟S3包括:所述客戶端程序根據所述智能密鑰設備的序列號計算得到管理員密碼。
其中,所述裝置包括客戶端程序和后臺服務器,所述步驟S3包括:
步驟S3-1:所述客戶端程序根據所述智能密鑰設備的序列號從后臺服務器中獲取加密后的隨機數;
步驟S3-2:所述客戶端程序使用客戶端私鑰對所述加密后的隨機數進行解密得到隨機數,將所述智能密鑰設備的序列號與所述隨機數進行拼接,對拼接結果進行哈希運算得到管理員密碼。
其中,所述步驟S4之前包括:所述客戶端程序從所述智能密鑰設備中獲取隨機串;
所述步驟S4包括:所述客戶端程序使用所述管理員密碼對所述隨機串進行加密,將加密結果作為參數調用第二接口進行驗證,如驗證成功則調用第三接口重新設置所述智能密鑰設備的個人識別碼,并判斷所述第三接口是否返回真值,是則解鎖成功,否則解鎖失敗,結束,如驗證失敗則解鎖失敗,結束。
其中,所述步驟S3-1具體為:所述客戶端程序將所述智能密鑰設備的序列號發(fā)送給所述后臺服務器;所述后臺服務器根據所述智能密鑰設備的序列號獲取對應的隨機數,使用客戶端公鑰對所述隨機數進行加密得到所述加密后的隨機數并將所述加密后的隨機數發(fā)送給所述客戶端程序。
其中,所述步驟S4中如解鎖成功還包括:
步驟A1:所述客戶端程序將所述智能密鑰設備的序列號和所述管理員密碼進行拼接,對拼接結果進行哈希運算得到新隨機數;
步驟A2:所述客戶端程序將所述序列號和所述新隨機數進行拼接,對拼接結果進行哈希運算得到新的管理員密碼;
步驟A3:所述客戶端程序根據所述新的管理員密碼進行修改管理員密碼操作,并判斷是否成功,是則給后臺服務器發(fā)送修改管理員密碼操作成功信息,結束,否則結束。
其中,所述方法還包括:所述后臺服務器接收到修改管理員密碼操作成功信息后,將所述智能密鑰設備的序列號與保存的所述隨機數進行拼接,并對拼接結果做哈希運算得到第一哈希值,對所述智能密鑰設備的序列號與所述第一哈希值進行拼接后的拼接結果做哈希運算得到第二哈希值,并用所述第二哈希值替換保存的所述隨機數。
其中,所述客戶端程序給所述后臺服務器發(fā)送修改管理員密碼操作成功信息之前包括:所述客戶端程序生成第一數據并用后臺服務器公鑰對所述第一數據進行加密,將加密結果發(fā)送給所述后臺服務器;所述后臺服務器接收到所述加密結果后用后臺服務器私鑰對所述加密結果進行解密,如解密成功則用解密結果替換保存的所述隨機數,如解密失敗給所述客戶端程序返回解密失敗信息,結束。
本發(fā)明又提供了一種在線解鎖的實現裝置,包括:
接收模塊,用于接收用戶輸入的用戶信息;
第一判斷模塊,用于判斷所述接收模塊接收到的用戶信息是否正確,以及用于判斷結果為是時觸發(fā)獲取判斷模塊;
所述獲取判斷模塊,用于獲取智能密鑰設備的序列號,并判斷所述智能密鑰設備的序列號是否與所述用戶信息匹配,以及用于判斷結果為是時觸發(fā)第一獲取模塊;
所述第一獲取模塊,用于根據所述智能密鑰設備的序列號獲取對應的管理員密碼;
解鎖模塊,用于使用所述管理員密碼對所述智能密鑰設備進行解鎖操作。
其中,所述第一判斷模塊具體用于判斷所述用戶信息是否與保存的用戶信息匹配,以及用于判斷結果為是時觸發(fā)獲取判斷模塊。
其中,所述裝置還包括第二判斷模塊,用于判斷所述獲取判斷模塊是否獲取到所述智能密鑰設備的序列號。
其中,所述獲取判斷模塊具體包括:
第一獲取單元,用于通過第一接口獲取所述智能密鑰設備的序列號;
第一判斷單元,用于判斷所述智能密鑰設備的序列號是否與所述用戶信息匹配,以及用于判斷結果為是時觸發(fā)所述第一獲取模塊。
其中,所述第二判斷模塊具體用于判斷所述第一接口的返回值是否為預設值,是則獲取到所述智能密鑰設備的序列號,否則未獲取到所述智能密鑰設備的序列號。
其中,所述接收模塊,還用于接收解鎖觸發(fā)信息,以及接收到所述解鎖觸發(fā)信息時彈出解鎖頁面并等待用戶輸入用戶信息。
其中,所述裝置還包括:設置模塊,用于在所述解鎖模塊解鎖成功之后,重新設置個人識別碼并通知用戶。
其中,所述解鎖模塊具體用于將所述管理員密碼作為參數調用第二接口進行驗證,如驗證成功則調用第三接口重新設置所述智能密鑰設備的個人識別碼,并判斷所述第三接口是否返回真值,是則解鎖成功,否則解鎖失敗,如驗證失敗則解鎖失敗。
其中,所述裝置包括客戶端程序和后臺服務器,所述客戶端程序包括所述接收模塊、第一判斷模塊、獲取判斷模塊、第一獲取模塊和解鎖模塊,所述后臺服務器用于存儲與智能密鑰設備一一對應的管理員密碼;
所述第一獲取模塊具體用于根據所述智能密鑰設備的序列號從所述后臺服務器中獲取對應的管理員密碼。
其中,所述裝置為客戶端程序,所述第一獲取模塊具體用于根據所述智能密鑰設備的序列號計算得到管理員密碼。
其中,所述裝置包括客戶端程序和后臺服務器,所述客戶端程序包括所述接收模塊、第一判斷模塊、獲取判斷模塊、第一獲取模塊和解鎖模塊,,所述后臺服務器用于對隨機數進行加密得到加密后的隨機數;
所述第一獲取模塊包括:
第二獲取單元,用于根據所述智能密鑰設備的序列號從所述后臺服務器中獲取加密后的隨機數;
解密拼接單元,用于使用客戶端私鑰對所述加密后的隨機數進行解密得到隨機數,將所述智能密鑰設備的序列號與所述隨機數進行拼接,對拼接結果進行哈希運算得到管理員密碼。
其中,所述客戶端程序還包括:第二獲取模塊,用于從所述智能密鑰設備中獲取隨機串;
所述解鎖模塊包括:
加密單元,用于使用所述管理員密碼對所述隨機串進行加密得到加密結果;
驗證單元,用于將加密結果作為參數調用第二接口進行驗證,如驗證成功則調用第三接口重新設置所述智能密鑰設備的個人識別碼,并判斷所述第三接口是否返回真值,是則解鎖成功,否則解鎖失敗,如驗證失敗則解鎖失敗。
其中,所述第二獲取單元具體用于將所述智能密鑰設備的序列號發(fā)送給所述后臺服務器;
所述后臺服務器具體用于根據所述智能密鑰設備的序列號獲取對應的隨機數,使用客戶端公鑰對所述隨機數進行加密得到所述加密后的隨機數并將所述加密后的隨機數發(fā)送給所述客戶端程序。
其中,所述客戶端程序還包括:
第一拼接哈希模塊,用于將所述智能密鑰設備的序列號和所述管理員密碼進行拼接,對拼接結果進行哈希運算得到新隨機數;
第二拼接哈希模塊,用于將所述序列號和所述新隨機數進行拼接,對拼接結果進行哈希運算得到新的管理員密碼;
修改判斷模塊,用于根據所述新的管理員密碼進行修改管理員密碼操作,并判斷是否成功,以及用于判斷結果為是時給所述后臺服務器發(fā)送修改管理員密碼操作成功信息;
所述后臺服務器還用于接收所述修改判斷模塊發(fā)送的修改管理員密碼操作成功信息。
其中,所述后臺服務器還用于在接收到修改管理員密碼操作成功信息后,將所述智能密鑰設備的序列號與保存的所述隨機數進行拼接,并對拼接結果做哈希運算得到第一哈希值,對所述智能密鑰設備的序列號與所述第一哈希值進行拼接后的拼接結果做哈希運算得到第二哈希值,并用所述第二哈希值替換保存的所述隨機數。
其中,所述客戶端程序還包括:生成加密模塊,用于生成第一數據并用后臺服務器公鑰對所述第一數據進行加密得到加密結果,將所述加密結果發(fā)送給所述后臺服務器;所述后臺服務器還用于接收所述加密結果,并使用后臺服務器私鑰對所述加密結果進行解密,如解密成功則用解密結果替換保存的所述隨機數,如解密失敗給所述裝置返回解密失敗信息。
本發(fā)明與現有技術相比,具有以下優(yōu)點:
本發(fā)明的方法適用于用戶的智能密鑰設備被鎖死或者忘記個人識別碼的情形,當用戶訪問網站提交資料,插入需要解鎖的智能密鑰設備,裝置從智能密鑰設備中獲取智能密鑰設備的序列號,根據智能密鑰設備的序列號計算管理員密碼,然后再使用管理員密碼進行解鎖,安全方便。
附圖說明
圖1為本發(fā)明實施例一提供的一種在線解鎖的實現方法流程圖;
圖2為本發(fā)明實施例二提供的一種在線解鎖的實現方法流程圖;
圖3為本發(fā)明實施例三提供的一種在線解鎖的實現方法流程圖;
圖4為本發(fā)明實施例四提供的一種在線解鎖的實現方法流程圖;
圖5為本發(fā)明實施例五提供的一種在線解鎖的實現裝置方框圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例一
本發(fā)明實施例一提供一種在線解鎖的實現方法,如圖1所示,包括:
步驟S1:當裝置接收到用戶輸入的用戶信息時,判斷用戶信息是否正確,是則執(zhí)行步驟S2,否則結束;
在本實施例中,步驟S1之前包括:當裝置接收到解鎖觸發(fā)信息時,彈出解鎖頁面并等待用戶輸入用戶信息,執(zhí)行步驟S1;
具體的,判斷用戶信息是否正確,包括:判斷用戶信息是否與保存的用戶信息匹配,是則執(zhí)行步驟S2,否則結束;
步驟S2:裝置獲取智能密鑰設備的序列號,并判斷智能密鑰設備的序列號是否與用戶信息匹配,是則執(zhí)行步驟S3,否則結束;
具體的,在本實施例中,裝置獲取智能密鑰設備的序列號與判斷智能密鑰設備的序列號是否與用戶信息匹配之間包括:裝置判斷是否獲取到智能密鑰設備的序列號,是則判斷智能密鑰設備的序列號是否與用戶信息匹配,否則結束;
在本實施例中,裝置獲取智能密鑰設備的序列號,判斷是否獲取到智能密鑰設備的序列號,具體為:裝置通過第一接口來獲取智能密鑰設備的序列號,并判斷第一接口的返回值是否為預設值,是則獲取到智能密鑰設備的序列號,否則未獲取到智能密鑰設備的序列號;
步驟S3:裝置根據智能密鑰設備的序列號獲取對應的管理員密碼;
在本實施例中,裝置可以為客戶端程序,還可以包括后臺服務器,則步驟S3有多種實現方式,本發(fā)明實施例以下述幾種方式進行詳述;
(1)裝置包括客戶端程序和后臺服務器,客戶端程序根據智能密鑰設備的序列號從后臺服務器中獲取對應的管理員密碼;
(2)裝置為客戶端程序,客戶端程序根據智能密鑰設備的序列號計算得到管理員密碼;
(3)裝置包括客戶端程序和后臺服務器,客戶端程序根據智能密鑰設備的序列號從后臺服務器中獲取加密后的隨機數;使用客戶端私鑰對加密后的隨機數進行解密得到隨機數,將智能密鑰設備的序列號與隨機數進行拼接,對拼接結果進行哈希運算得到管理員密碼;
客戶端程序根據智能密鑰設備的序列號從后臺服務器中獲取加密后的隨機數,具體為:客戶端程序將智能密鑰設備的序列號發(fā)送給后臺服務器;后臺服務器根據智能密鑰設備的序列號獲取對應的隨機數,使用客戶端公鑰對隨機數進行加密得到加密后的隨機數并將加密后的隨機數發(fā)送給客戶端程序;
步驟S4:裝置使用管理員密碼對智能密鑰設備進行解鎖操作。
在本實施例中,解鎖操作的結果有解鎖成功和解鎖失敗,如解鎖成功則本實施例方法還包括:裝置重新設置個人識別碼并通知用戶,如解鎖失敗則結束;
優(yōu)選的,步驟S4包括:所述裝置將所述管理員密碼作為參數調用第二接口進行驗證,如驗證成功則調用第三接口重新設置所述智能密鑰設備的個人識別碼,并判斷所述第三接口是否返回真值,是則解鎖成功,否則解鎖失敗,結束,如驗證失敗則解鎖失敗,結束。
為提高解鎖的安全性,在步驟S4之前包括:裝置從智能密鑰設備中獲取隨機串;步驟S4包括:裝置使用管理員密碼對隨機串進行加密,將加密結果作為參數調用第二接口進行驗證,如驗證成功則調用第三接口重新設置智能密鑰設備的個人識別碼,并判斷第三接口是否返回真值,是則解鎖成功,否則解鎖失敗,結束,如驗證失敗則解鎖失敗,結束。
在本實施例中,在步驟S4中如解鎖成功則還包括:
步驟A1:客戶端程序將智能密鑰設備的序列號和管理員密碼進行拼接,對拼接結果進行哈希運算得到新隨機數;
步驟A2:客戶端程序將序列號和新隨機數進行拼接,對拼接結果進行哈希運算得到新的管理員密碼;
步驟A3:客戶端程序根據新的管理員密碼進行修改管理員密碼操作,并判斷是否成功,是則給后臺服務器發(fā)送修改管理員密碼操作成功信息,結束,否則結束。
后臺服務器在接收到修改管理員密碼操作成功信息后,會對保存的隨機數進行更新,可以通過以下兩種方法來實現;
(一)后臺服務器接收到修改管理員密碼操作成功信息后,將智能密鑰設備的序列號與保存的隨機數進行拼接,并對拼接結果做哈希運算得到第一哈希值,對智能密鑰設備的序列號與第一哈希值進行拼接后的拼接結果做哈希運算得到第二哈希值,并用第二哈希值替換保存的隨機數。
(二)裝置給后臺服務器發(fā)送修改管理員密碼操作成功信息之前包括:裝置生成第一數據并用后臺服務器公鑰對第一數據進行加密,將加密結果發(fā)送給后臺服務器;后臺服務器接收到加密結果后用后臺服務器私鑰對加密結果進行解密,如解密成功則用解密結果替換保存的隨機數,如解密失敗給裝置返回解密失敗信息,結束。
實施例二
本發(fā)明實施例二提供一種在線解鎖的實現方法,本實施例中的裝置包括客戶端程序和后臺服務器,如圖2所示,該方法包括:
步驟101:當客戶端程序接收到解鎖觸發(fā)信息時,彈出解鎖頁面并等待用戶輸入用戶信息;
在本實施例中,用戶信息包括用戶名和密碼;例如,用戶名是zhangsan,密碼是Abcd1234;
步驟102:當客戶端程序接收到用戶輸入的用戶信息時,判斷用戶信息是否正確,是則執(zhí)行步驟103,否則結束;
具體的,步驟102包括:客戶端程序判斷接收到的用戶信息是否與保存的用戶信息匹配,是則執(zhí)行步驟103,否則結束;
例如,本實施例中保存的用戶信息為:用戶名zhangsan,密碼ABCD1234,則步驟102中判斷為否則結束;如保存的用戶信息為:zhangsan,密碼是Abcd1234,則步驟102中判斷為是則執(zhí)行步驟103;
步驟103:客戶端程序獲取智能密鑰設備的序列號;
具體的,在本實施例中,客戶端程序通過調用P11(PKCS11,密碼令牌接口標準)的第一接口(C_GetTokenInfo)獲取插入的智能密鑰設備的序列號;
例如,在本實施例中,客戶端程序獲取到的智能密鑰設備的序列號為0653114714150A13,其對應的用戶信息為:用戶名zhangsan,密碼ABCD1234;
步驟104:客戶端程序判斷是否獲取到智能密鑰設備的序列號,是則執(zhí)行步驟105,否則結束;
在本實施例中,客戶端程序判斷P11的第一接口的返回值是否為真值(true),是則獲取到智能密鑰設備的序列號,否則未獲取到智能密鑰設備的序列號;
例如,本實施例中獲取到智能密鑰設備的序列號為0653114714150A13;
步驟105:客戶端程序判斷獲取到智能密鑰設備的序列號是否與接收到的用戶信息匹配,是則執(zhí)行步驟106,否則結束;
例如,在本實施例中智能密鑰設備的序列號為0653114714150A13,其對應的用戶信息為:用戶名zhangsan,密碼ABCD1234,步驟105判斷為是則執(zhí)行步驟106;
步驟106:客戶端程序根據智能密鑰設備的序列號從后臺服務器中獲取對應的管理員密碼;
例如,本實施例中智能密鑰設備的序列號0653114714150A13所對應的管理員密碼為f048842c72383783;
步驟107:客戶端程序使用管理員密碼對智能密鑰設備進行解鎖操作,并判斷解鎖是否成功,是則解鎖成功,重新設置個人識別碼并通知用戶,否則解鎖失敗,結束;
在本實施例中,步驟107包括:客戶端程序將管理員密碼作為參數調用P11的第二接口(C_Login)進行驗證,如驗證成功則調用p11的第三接口(C_InitPIN)重新設置智能密鑰設備的pin碼,并判斷p11的第三接口是否返回true,是則解鎖成功,重新設置個人識別碼并通知用戶,否則解鎖失敗,如驗證失敗則解鎖失敗,結束;
例如,在本實施例中,重新設置的個人識別碼為06d49632,并可以通過郵件或短信的方式通知用戶重新設置后的個人識別碼;
步驟107判斷為是時還可以包括:客戶端程序彈出對話框,提示用戶重新輸入個人識別碼。
實施例三
本發(fā)明實施例三提供一種在線解鎖的實現方法,本實施例中的裝置為客戶端程序,如圖3所示,包括:
步驟201:當裝置接收到解鎖觸發(fā)信息時,彈出解鎖頁面并等待用戶輸入用戶信息;
在本實施例中,用戶信息包括用戶名和密碼;例如,用戶名是zhangsan,密碼是Abcd1234;
步驟202:當裝置接收到用戶輸入的用戶信息時,判斷用戶信息是否正確,是則執(zhí)行步驟203,否則結束;
具體的,步驟202包括:裝置判斷接收到的用戶信息是否與保存的用戶信息匹配,是則執(zhí)行步驟203,否則結束;
例如,本實施例中保存的用戶信息為:用戶名zhangsan,密碼ABCD1234,則步驟202中判斷為否則結束;如保存的用戶信息為:zhangsan,密碼是Abcd1234,則步驟202中判斷為是則執(zhí)行步驟203;
步驟203:裝置獲取智能密鑰設備的序列號;
具體的,在本實施例中,裝置通過調用P11的第一接口(C_GetTokenInfo)獲取插入在裝置上的智能密鑰設備的序列號;
例如,本實施例中獲取到智能密鑰設備的序列號為0653114714150A13,對應的用戶信息為:用戶名是zhangsan,密碼是Abcd1234;
步驟204:裝置判斷是否獲取到智能密鑰設備的序列號,是則執(zhí)行步驟205,否則結束;
在本實施例中,裝置判斷P11的第一接口的返回值是否為true,是則獲取到智能密鑰設備的序列號,否則未獲取到智能密鑰設備的序列號;
步驟205:裝置判斷獲取到智能密鑰設備的序列號是否與接收到的用戶信息匹配,是則執(zhí)行步驟206,否則結束;
例如,在本實施例中智能密鑰設備的序列號為0653114714150A13,其對應的用戶信息為:用戶名zhangsan,密碼ABCD1234,步驟205判斷為是則執(zhí)行步驟206;
步驟206:裝置根據智能密鑰設備的序列號計算管理員密碼;
例如,在本實施例中,智能密鑰設備的序列號為653114714150A13,對其進行哈希運算得到的管理員密碼為de476c4349720330;
步驟207:裝置使用管理員密碼對智能密鑰設備進行解鎖操作,并判斷解鎖是否成功,是則解鎖成功,重新設置個人識別碼并通知用戶,否則解鎖失敗,結束;
在本實施例中,步驟207包括:裝置將管理員密碼作為參數調用P11的第二接口(C_Login)進行驗證,如驗證成功則調用p11的第三接口(C_InitPIN)重新設置智能密鑰設備的pin碼,并判斷p11的第三接口是否返回true,是則解鎖成功,重新設置個人識別碼并通知用戶,否則解鎖失敗,結束,如驗證失敗則解鎖失敗,結束;
例如,在本實施例中,重新設置的個人識別碼為06d49632,并可以通過郵件或短信的方式通知用戶重新設置后的個人識別碼;
步驟207判斷為是時還可以包括:裝置彈出對話框,提示用戶重新輸入個人識別碼。
實施例四
本發(fā)明實施例四提供一種在線解鎖的實現方法,本實施例中的裝置包括客戶端程序和后臺服務器,如圖4所示,該方法包括:
步驟301:當客戶端程序接收到解鎖觸發(fā)信息時,彈出解鎖頁面并等待用戶輸入用戶信息;
在本實施例中,用戶信息包括用戶名和密碼;例如,用戶名是zhangsan,密碼是Abcd1234;
步驟302:當客戶端程序接收到用戶輸入的用戶信息時,判斷用戶信息是否正確,是則執(zhí)行步驟303,否則結束;
具體的,步驟302包括:客戶端程序判斷接收到的用戶信息是否與保存的用戶信息匹配,是則執(zhí)行步驟303,否則結束;
例如,本實施例中保存的用戶信息為:用戶名zhangsan,密碼ABCD1234,則步驟302中判斷為否則結束;如保存的用戶信息為:zhangsan,密碼是Abcd1234,則步驟302中判斷為是則執(zhí)行步驟303;
步驟303:客戶端程序獲取智能密鑰設備的序列號;
具體的,在本實施例中,客戶端程序通過調用P11的第一接口(C_GetTokenInfo)獲取插入智能密鑰設備的序列號;
步驟304:客戶端程序判斷是否獲取到智能密鑰設備的序列號,是則執(zhí)行步驟305,否則結束;
在本實施例中,客戶端程序判斷P11的第一接口的返回值是否為true,是則獲取到智能密鑰設備的序列號,否則未獲取到智能密鑰設備的序列號;
例如,本實施例中獲取到智能密鑰設備的序列號為0653114714150A13;
步驟305:客戶端程序判斷獲取到智能密鑰設備的序列號是否與接收到的用戶信息匹配,是則執(zhí)行步驟306,否則結束;
步驟306:客戶端程序根據智能密鑰設備的序列號從后臺服務器中獲取加密后的隨機數;
具體的,在本實施例中,步驟306包括:客戶端程序將智能密鑰設備的序列號發(fā)送給后臺服務器;后臺服務器根據智能密鑰設備的序列號獲取對應的隨機數,使用客戶端公鑰對獲取的隨機數進行加密得到加密后的隨機數,并將該加密后的隨機數發(fā)送給客戶端程序;
例如,后臺服務器獲取到的隨機數為986DE47418B778F8,進行加密得到的加密后的隨機數為:E5 06 20 8D D1 B6 67 37 B4 F1 70 A7 6A CD E3 27 1C CE D4 F0 88 AF 89 1E C5 35 DD 7B BC DE 2A 73 73 B5 2C 5D 33 78 20 22 10 AE 07 6E DD 93 C5 55 58 76 5D 6C E7 2E 46 E8 33 0A 0B 6B F0 9E 68 0D CB 61 4C C8 29 7A 9C 8A 3D 35 69 08 CE C6 81 6B 52 8C AB 3B C8 57 F3 5C 82 AA EC 1E B0 30 35 CC BE 61 84 CF E3 49 29 41 43 46 67 AF 2E FF 00 33 10 DF DB B3 97 8B 10 45 FE CE 55 39 61 65 1F 35;
步驟307:客戶端程序使用客戶端私鑰對加密后的隨機數進行解密得到隨機數,將智能密鑰設備的序列號與隨機數進行拼接,對拼接結果進行哈希運算得到管理員密碼;
例如,在本實施例中,解密得到的隨機數為:986DE47418B778F8,序列號與隨機數的拼接結果為:0653114714150A13986DE47418B778F8,對該拼接結果進行哈希運算得到的管理員密碼為7018600ef3548af4;
步驟308:客戶端程序使用管理員密碼對智能密鑰設備進行解鎖操作,并判斷解鎖是否成功,是則執(zhí)行步驟309,否則結束;
在本實施例中,步驟308包括:客戶端程序將sopin作為參數調用P11的第二接口(C_Login)進行驗證,如驗證成功則調用p11的第三接口(C_InitPIN)重新設置個人識別碼,并判斷p11的第三接口是否返回true,是則執(zhí)行步驟309,否則結束,如驗證失敗則結束;
例如,在本實施例中,重新設置的個人識別碼為:06d49632;
步驟308判斷為是時還可以包括:客戶端程序彈出對話框,提示用戶重新輸入個人識別碼;
步驟309:客戶端程序將智能密鑰設備的序列號和管理員密碼進行拼接,對拼接結果進行哈希運算得到新隨機數;
例如,在本實施例中,序列號和管理員密碼的拼接結果為0653114714150A137018600ef3548af4;對該拼接結果進行哈希運算得到新隨機數為fa5f055e350bd4ac;
步驟310:客戶端程序將序列號和新隨機數進行拼接,對拼接結果進行哈希運算得到新的管理員密碼;
例如,在本實施例中,序列號和新隨機數的拼接結果為0653114714150A13fa5f055e350bd4ac;對該拼接結果進行哈希運算得到新的管理員密碼為f3a6321f486b5bfe;
步驟311:客戶端程序根據新的管理員密碼進行修改管理員密碼操作,并判斷是否成功,是則執(zhí)行步驟312,否則結束;
在本實施例中,步驟311具體為:客戶端程序將新的管理員密碼作為參數調用P11的第四接口(C_SetPIN)進行修改管理員密碼,如接口返回true則操作成功,否則操作失??;
步驟312:客戶端程序給后臺服務器發(fā)送修改管理員密碼操作成功信息,結束;
具體的,在本實施例中,后臺服務器接收到修改管理員密碼操作成功信息后,后臺服務器將智能密鑰設備的序列號與保存的隨機數進行拼接,并對拼接結果做哈希運算得到第一哈希值,對智能密鑰設備的序列號與第一哈希值進行拼接后的拼接結果做哈希運算得到第二哈希值,并用第二哈希值替換保存的隨機數。
在本實施例中,客戶端程序給后臺服務器發(fā)送修改管理員密碼操作成功信息之前還可以包括:客戶端程序生成第一數據并用后臺服務器公鑰對該第一數據進行加密得到加密結果,然后將加密結果發(fā)送給后臺服務器;后臺服務器接收到加密結果后用后臺服務器私鑰對其進行解密,如解密成功則用解密結果替換保存的隨機數,如解密失敗給客戶端程序返回解密失敗信息,結束;
優(yōu)選的,在本實施例中,步驟312之后還包括:客戶端程序將重新設置的用戶識別碼通過郵件或短信方式發(fā)送給用戶。
本實施例中的方法適用于用戶的智能密鑰設備被鎖死或者忘記pin碼時,當用戶訪問網站提交資料,在裝置上插入需要解鎖的智能密鑰設備,客戶端程序從后臺服務器中獲取智能密鑰設備的序列號,根據智能密鑰設備的序列號計算管理員密碼,然后使用管理員密碼進行解鎖,安全方便。
實施例五
本發(fā)明實施例五提供了一種在線解鎖的實現裝置,如圖5所示,包括:
接收模塊401,用于接收解鎖觸發(fā)信息,以及接收到解鎖觸發(fā)信息時彈出解鎖頁面并等待用戶輸入用戶信息;還用于接收用戶從解鎖頁面輸入的用戶信息;
在本實施例中,用戶信息包括用戶名和密碼;例如,用戶名是zhangsan,密碼是Abcd1234;
第一判斷模塊402,用于判斷用戶信息是否正確,以及用于判斷結果為是時觸發(fā)獲取判斷模塊403;
在本實施例中,第一判斷模塊402具體用于判斷用戶信息是否與保存的用戶信息匹配,以及用于判斷結果為是時觸發(fā)獲取判斷模塊403;
獲取判斷模塊403,用于獲取智能密鑰設備的序列號,并判斷智能密鑰設備的序列號是否與用戶信息匹配,以及用于判斷結果為是時觸發(fā)第一獲取模塊404;
具體的,在本實施例中,獲取判斷模塊403具體包括:
第一獲取單元,用于通過P11的第一接口獲取智能密鑰設備的序列號;
第一判斷單元,用于判斷智能密鑰設備的序列號是否與用戶信息匹配,以及用于判斷結果為是時觸發(fā)第一獲取模塊;
第一獲取模塊404,用于根據智能密鑰設備的序列號獲取對應的管理員密碼;
解鎖模塊405,用于使用管理員密碼對智能密鑰設備進行解鎖操作;
本實施例中的裝置還可以包括設置模塊,用于在解鎖模塊405解鎖成功后,重新設置個人識別碼并通知用戶。
在本實施例中,解鎖模塊405具體用于將管理員密碼作為參數調用P11的第二接口進行驗證,如驗證成功則調用p11的第三接口重新設置智能密鑰設備的pin碼,并判斷p11的第三接口是否返回true,是則解鎖成功,否則解鎖失敗,如驗證失敗則解鎖失敗。
本實施例中的裝置還包括第二判斷模塊,用于判斷獲取判斷模塊是否獲取到智能密鑰設備的序列號;第二判斷模塊具體用于判斷P11的第一接口的返回值是否為預設值,是則獲取到智能密鑰設備的序列號,否則未獲取到智能密鑰設備的序列號。
本實施例中的裝置還包括第三判斷模塊,用于判斷智能密鑰設備的序列號是否與用戶信息匹配,以及用于判斷結果為是時觸發(fā)第一獲取模塊404。
在本實施例中,第一獲取模塊404獲取管理員密碼包括多種實現方式,本實施例中的裝置可以為客戶端程序,還可以包括服務器。本實施例中僅以下述三種方式為例進行說明,但不僅限于這些實現方式。
(一)本實施例的裝置包括客戶端程序和后臺服務器,客戶端程序包括接收模塊、第一判斷模塊、獲取判斷模塊、第一獲取模塊和解鎖模塊,后臺服務器用于存儲與智能密鑰設備一一對應的管理員密碼;第一獲取模塊404具體用于根據智能密鑰設備的序列號從后臺服務器中獲取對應的管理員密碼。
(二)本實施例的裝置為客戶端程序,第一獲取模塊404具體用于根據智能密鑰設備的序列號計算得到管理員密碼。
(三)本實施例的裝置包括客戶端程序和后臺服務器,客戶端程序包括接收模塊、第一判斷模塊、獲取判斷模塊、第一獲取模塊和解鎖模塊,后臺服務器用于對隨機數進行加密得到加密后的隨機數;
第一獲取模塊404包括:
第二獲取單元,用于根據智能密鑰設備的序列號從后臺服務器中獲取加密后的隨機數;
在本實施例中,第二獲取單元具體用于將智能密鑰設備的序列號發(fā)送給后臺服務器;后臺服務器具體用于根據智能密鑰設備的序列號獲取對應的隨機數,使用客戶端公鑰對隨機數進行加密得到加密后的隨機數并將該加密后的隨機數發(fā)送給客戶端程序。
解密拼接單元,用于使用客戶端私鑰對加密后的隨機數進行解密得到隨機數,將智能密鑰設備的序列號與隨機數進行拼接,對拼接結果進行哈希運算得到管理員密碼。
為使解鎖過程更加安全,本實施例客戶端程序還可以包括:第二獲取模塊,用于從智能密鑰設備中獲取隨機串;
解鎖模塊包括加密單元和驗證單元:
加密單元,用于使用管理員密碼對隨機串進行加密得到加密結果;
驗證單元,用于將加密結果作為參數調用第二接口進行驗證,如驗證成功則調用第三接口重新設置智能密鑰設備的個人識別碼,并判斷第三接口是否返回真值,是則解鎖成功,否則解鎖失敗,如驗證失敗則解鎖失敗。
第三種實現方式的客戶端程序還包括:
第一拼接哈希模塊,用于將智能密鑰設備的序列號和管理員密碼進行拼接,對拼接結果進行哈希運算得到新隨機數;
第二拼接哈希模塊,用于將序列號和新隨機數進行拼接,對拼接結果進行哈希運算得到新的管理員密碼;
修改判斷模塊,用于根據新的管理員密碼進行修改管理員密碼操作,并判斷是否成功,以及用于判斷結果為是時給后臺服務器發(fā)送修改管理員密碼操作成功信息。后臺服務器還用于接收修改管理員密碼操作成功信息,在接收到修改管理員密碼操作成功信息后,將智能密鑰設備的序列號與保存的隨機數進行拼接,并對拼接結果做哈希運算得到第一哈希值,對智能密鑰設備的序列號與第一哈希值進行拼接后的拼接結果做哈希運算得到第二哈希值,并用第二哈希值替換保存的隨機數。
本實施例第三種實現方式的客戶端程序還可包括:生成加密模塊,用于生成第一數據并用后臺服務器公鑰對第一數據進行加密得到加密結果,將加密結果發(fā)送給后臺服務器;后臺服務器還用于接收加密結果,并使用后臺服務器私鑰對加密結果進行解密,如解密成功則用解密結果替換保存的隨機數,如解密失敗給裝置返回解密失敗信息。
以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明公開的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應該以權利要求的保護范圍為準。