本發(fā)明涉及智能鎖領(lǐng)域,具體而言,涉及一種密碼生成方法、裝置和智能鎖。
背景技術(shù):
配合計量箱使用的智能鎖在當(dāng)前應(yīng)用非常普遍,由于智能鎖可以采用密碼輸入的方式來驗證用戶的身份,解決了隨身帶鑰匙的不方便及丟鑰匙帶來的風(fēng)險。
現(xiàn)有智能鎖的密碼常采用智能鎖密碼鍵盤、3des密鑰算法或密鑰分散技術(shù),并且密碼是存儲在智能鎖的EEPROM中,采用的密碼是固定的,需要使用者自己增加、刪除、修改;能修改其他密碼的密碼叫超級密碼;并且密碼一般是由6位數(shù)字組成,也就是說最多有100萬組密碼;由于密碼是固定存儲在EEPROM的芯片里,且能使用的密碼組有限,一般是一個使用者一組;這樣就存在某一組密碼被泄露后,需要所有的密碼都更換;現(xiàn)實中無法知道是不是有人泄露了密碼,使得采用這種固定密碼的密碼鎖安全性比較低。一般廠家會要求用戶一段時間更換一次密碼。
針對上述現(xiàn)有技術(shù)中智能鎖密碼安全性能低的問題,目前尚未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供了一種密碼生成方法、裝置和智能鎖,以至少解決現(xiàn)有技術(shù)中智能鎖密碼安全性能低的技術(shù)問題。
根據(jù)本發(fā)明實施例的一個方面,提供了一種密碼生成方法,包括:獲取智能鎖編號;使用預(yù)設(shè)初始密鑰對智能鎖編號進(jìn)行加密運算,得到智能鎖的密鑰;獲取用戶輸入的密碼組編號;將密碼組編號進(jìn)行填充,得到密碼組編號數(shù)組;使用智能鎖的密鑰對密碼組編號數(shù)組進(jìn)行加密運算,得到第一動態(tài)密碼。
進(jìn)一步的,得到第一動態(tài)密碼之后,包括:對第一動態(tài)密碼的每個字節(jié)對10取余,得到第二動態(tài)密碼。
進(jìn)一步的,獲取智能鎖編號之后,還包括:確定智能鎖編號是否為8字節(jié);在智能鎖編號不是8字節(jié)的情況下,將智能鎖編號轉(zhuǎn)換為8字節(jié)。
進(jìn)一步的,將密碼組編號進(jìn)行填充,得到密碼組編號數(shù)組,包括:使用0x80十六進(jìn)制數(shù)對密碼組編號進(jìn)行填充,得到的密碼組編號數(shù)組為8字節(jié)長度的一個數(shù)組。
進(jìn)一步的,加密運算為3DES分散加密運算或DES等對稱算法,預(yù)設(shè)初始密鑰的長度為128位bit。
根據(jù)本發(fā)明實施例的另一方面,還提供了一種密碼生成裝置,包括:第一獲取模塊,用于獲取智能鎖編號;第一加密模塊,用于使用預(yù)設(shè)初始密鑰對智能鎖編號進(jìn)行加密運算,得到智能鎖的密鑰;第二獲取模塊,用于獲取用戶輸入的密碼組編號;填充模塊,用于將密碼組編號進(jìn)行填充,得到密碼組編號數(shù)組;第二加密模塊,用于使用智能鎖的密鑰對密碼組編號數(shù)組進(jìn)行加密運算,得到第一動態(tài)密碼。
進(jìn)一步的,裝置還包括:取余模塊,用于對第一動態(tài)密碼的每個字節(jié)對10取余,得到第二動態(tài)密碼。
進(jìn)一步的,裝置還包括:確定模塊,用于在第一獲取模塊獲取到智能鎖編號后,確定智能鎖編號是否為8字節(jié);轉(zhuǎn)換模塊,用于在智能鎖編號不是8字節(jié)的情況下,將智能鎖編號轉(zhuǎn)換為8字節(jié)。
進(jìn)一步的,填充模塊包括:填充子模塊,用于使用0x80十六進(jìn)制數(shù)對密碼組編號進(jìn)行填充,得到的密碼組編號數(shù)組為8字節(jié)長度的一個數(shù)組。
根據(jù)本發(fā)明實施例的另一方面,還提供了一種智能鎖,包括上述密碼生成裝置。
在本發(fā)明實施例中,通過獲取智能鎖編號;使用預(yù)設(shè)初始密鑰對智能鎖編號進(jìn)行加密運算,得到智能鎖的密鑰;獲取用戶輸入的密碼組編號;將密碼組編號進(jìn)行填充,得到密碼組編號數(shù)組;使用智能鎖的密鑰對密碼組編號數(shù)組進(jìn)行加密運算,得到第一動態(tài)密碼,達(dá)到了生成動態(tài)密碼的目的,并且在不改變原有智能鎖密碼輸入習(xí)慣的前提下,對密碼的生成方式進(jìn)行了改變,使智能鎖在使用時更加方便,不需要人為的增加、修改、刪除密碼,密碼可以動態(tài)生成,并且具有唯一性,安全性能高,進(jìn)而解決了現(xiàn)有技術(shù)中智能鎖密碼安全性能低的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實施例1的一種密碼生成方法的流程圖;以及
圖2是根據(jù)本發(fā)明實施例2的一種密碼生成裝置的結(jié)構(gòu)圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
實施例1
根據(jù)本發(fā)明實施例,提供了一種密碼生成方法的方法實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機(jī)可執(zhí)行指令的計算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1是根據(jù)本發(fā)明實施例的密碼生成方法,如圖1所示,該方法包括如下步驟:
步驟S102,獲取智能鎖編號。
具體的,每個智能鎖的編號都是唯一的。
步驟S104,使用預(yù)設(shè)初始密鑰對智能鎖編號進(jìn)行加密運算,得到智能鎖的密鑰。
具體的,預(yù)設(shè)初始密鑰可以自定義修改,通過修改預(yù)設(shè)初始密鑰,最終的第一動態(tài)密碼也會隨之改變,可以防止用戶密碼泄露的風(fēng)險。
步驟S106,獲取用戶輸入的密碼組編號。
具體的,密碼組編號可以由用戶自定義設(shè)置,例如可以使用一些吉祥數(shù)字,例如88、66等,也可以使用用戶的生日,并且密碼組編號可以通過智能移動終端,例如手機(jī)來設(shè)置。
通過上述步驟S106,在密碼生成的過程中加入了密碼組編號,也就是說最終的第一動態(tài)密碼可以由用戶自定義選擇。
步驟S108,將密碼組編號進(jìn)行填充,得到密碼組編號數(shù)組。
步驟S110,使用智能鎖的密鑰對密碼組編號數(shù)組進(jìn)行加密運算,得到第一動態(tài)密碼。
在本發(fā)明實施例中,通過獲取智能鎖編號;使用預(yù)設(shè)初始密鑰對智能鎖編號進(jìn)行加密運算,得到智能鎖的密鑰;獲取用戶輸入的密碼組編號;將密碼組編號進(jìn)行填充,得到密碼組編號數(shù)組;使用智能鎖的密鑰對密碼組編號數(shù)組進(jìn)行加密運算,得到第一動態(tài)密碼,達(dá)到了生成動態(tài)密碼的目的,并且在不改變原有智能鎖密碼輸入習(xí)慣的前提下,對密碼的生成方式進(jìn)行了改變,使智能鎖在使用時更加方便,不需要人為的增加、修改、刪除密碼,密碼可以動態(tài)生成,并且具有唯一性,安全性能高,進(jìn)而解決了現(xiàn)有技術(shù)中智能鎖密碼安全性能低的技術(shù)問題。
在一種可選的實施例中,步驟S110之后,包括:步驟S202,對第一動態(tài)密碼的每個字節(jié)對10取余,得到第二動態(tài)密碼。
在一種可選的實施例中,步驟S102之后,還包括:步驟S302,確定智能鎖編號是否為8字節(jié);在智能鎖編號不是8字節(jié)的情況下,將智能鎖編號轉(zhuǎn)換為8字節(jié)。
具體的,如果智能鎖編號不夠8字節(jié),可以在智能鎖編號前添加0,直到智能鎖編號為8字節(jié),如果智能鎖編號超過8字節(jié),可以相應(yīng)的刪減字節(jié)。
在一種可選的實施例中,步驟S108包括:使用0x80十六進(jìn)制數(shù)對密碼組編號進(jìn)行填充,得到的密碼組編號數(shù)組為8字節(jié)長度的一個數(shù)組。
在一種可選的實施例中,加密運算為3DES分散加密運算或DES等對稱算法,預(yù)設(shè)初始密鑰的長度為128位bit。
在一種可選的實施例中,獲取智能鎖編號后,可以將智能鎖編號設(shè)為LID,LID由一個8字節(jié)的數(shù)組組成,預(yù)設(shè)初始密鑰為128位bit,可以設(shè)為VKEY,以VKEY為加密密鑰對LID進(jìn)行3DES分散加密運算,得到智能鎖的密鑰,該智能鎖的密鑰的長度也為128位bit,該智能鎖的密鑰就是智能鎖的私有專用密鑰,可以設(shè)為PKEY;然后,可以由用戶輸入密碼組編號,并且用0x80十六進(jìn)制數(shù)對密碼組編號進(jìn)行填充,得到的密碼組編號數(shù)組為8字節(jié)長度的一個數(shù)組,比如輸入的密碼組編號為01,那么生成的密碼組編號數(shù)組就是(0x01,0x80,0x80,0x80,0x80,0x80,0x80,0x80),可以設(shè)密碼組編號數(shù)組為GNUM;然后以PKEY為加密密鑰對GNUM進(jìn)行3DES分散加密運算,得到第一動態(tài)密碼,第一動態(tài)密碼的長度為8字節(jié),然后將第一動態(tài)密碼的數(shù)組的每個字節(jié)進(jìn)行對10取余運算,得到的8個數(shù)字就是第二動態(tài)密碼,可以設(shè)為PASSWD。
實施例2
根據(jù)本發(fā)明實施例,提供了一種密碼生成裝置的產(chǎn)品實施例,圖2是根據(jù)本發(fā)明實施例的密碼生成裝置,如圖2所示,該裝置包括第一獲取模塊、第一加密模塊、第二獲取模塊、填充模塊和第二加密模塊。
其中,第一獲取模塊,用于獲取智能鎖編號;第一加密模塊,用于使用預(yù)設(shè)初始密鑰對智能鎖編號進(jìn)行加密運算,得到智能鎖的密鑰;第二獲取模塊,用于獲取用戶輸入的密碼組編號;填充模塊,用于將密碼組編號進(jìn)行填充,得到密碼組編號數(shù)組;第二加密模塊,用于使用智能鎖的密鑰對密碼組編號數(shù)組進(jìn)行加密運算,得到第一動態(tài)密碼。
在本發(fā)明實施例中,通過第一獲取模塊獲取智能鎖編號;第一加密模塊使用預(yù)設(shè)初始密鑰對智能鎖編號進(jìn)行加密運算,得到智能鎖的密鑰;第二獲取模塊獲取用戶輸入的密碼組編號;填充模塊將密碼組編號進(jìn)行填充,得到密碼組編號數(shù)組;第二加密模塊使用智能鎖的密鑰對密碼組編號數(shù)組進(jìn)行加密運算,得到第一動態(tài)密碼,達(dá)到了生成動態(tài)密碼的目的,并且在不改變原有智能鎖密碼輸入習(xí)慣的前提下,對密碼的生成方式進(jìn)行了改變,使智能鎖在使用時更加方便,不需要人為的增加、修改、刪除密碼,密碼可以動態(tài)生成,并且具有唯一性,安全性能高,進(jìn)而解決了現(xiàn)有技術(shù)中智能鎖密碼安全性能低的技術(shù)問題。
在一種可選的實施例中,裝置還包括:取余模塊,用于對第一動態(tài)密碼的每個字節(jié)對10取余,得到第二動態(tài)密碼。
在一種可選的實施例中,裝置還包括:確定模塊,用于在第一獲取模塊獲取到智能鎖編號后,確定智能鎖編號是否為8字節(jié);轉(zhuǎn)換模塊,用于在智能鎖編號不是8字節(jié)的情況下,將智能鎖編號轉(zhuǎn)換為8字節(jié)。
在一種可選的實施例中,填充模塊包括:填充子模塊,用于使用0x80十六進(jìn)制數(shù)對密碼組編號進(jìn)行填充,得到的密碼組編號數(shù)組為8字節(jié)長度的一個數(shù)組。
實施例3
根據(jù)本發(fā)明實施例,提供了一種智能鎖的產(chǎn)品實施例,該智能鎖包括上述密碼生成裝置。
在一種可選的實施例中,本發(fā)明中的智能鎖能夠配合計量箱使用。
上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
在本發(fā)明的上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實現(xiàn)。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可為個人計算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-OnlyMemory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。