本發明涉及軟件加密領域,尤其涉及一種基于kotlin語言的軟件加密方法、裝置及電子設備。
背景技術:
1、隨著汽車電子系統的快速發展,因此市場上也涌入了大量的針對汽車電子系統故障維修的汽車電子診斷儀器。這種儀器是用于檢測汽車故障的智能汽車故障自檢儀,用戶可以利用它迅速地讀取汽車電控系統中的故障,并通過液晶顯示屏顯示故障信息,迅速查明發生故障的部位及原因。
2、但隨著各類汽車診斷儀層出不窮,互聯網+汽車維護保養的維修模式廣泛普及之下,也有越來越多的用戶對汽車的診斷軟件進行破解,非法惡意使用診斷軟件,進而對生產廠商造成了損失。
技術實現思路
1、為了解決現有技術存在的缺陷,本發明提供了一種多線程診斷方法、裝置、電子設備及存儲介質。
2、本發明提供的技術文案,一種基于kotlin語言的軟件加密方法,應用于診斷設備,所述方法應用于在kotlin語言運行環境中運行的當前應用程序,所述方法包括:
3、對診斷軟件的數據庫進行分析,得到分析結果,其中,所述分析結果包括數據庫存儲位置以及數據庫存儲的數據表;
4、根據所述分析結果,篩選得到兩個以上數據類型一致的數據表,并將兩個以上所述數據表合并為一個數據表;
5、對合并后的數據表進行加密處理,并將加密密鑰和加密算法存儲在數據庫頭部;
6、對數據庫進行測試,判斷是否加密成功。
7、可選的,對診斷軟件的數據庫進行分析,得到分析結果的具體步驟,包括:
8、與所述診斷設備建立連接,讀取所述診斷設備的系統數據庫;
9、查詢所述數據庫的存儲位置以及導出數據庫中存儲的多個數據表,其中,所述數據表包括車型的配置信息以及下載地址。
10、可選的,根據所述分析結果,篩選得到兩個以上數據類型一致的數據表,并將兩個以上所述數據表合并為一個數據表的具體步驟,包括:
11、根據所述數據庫的表結構關聯性,對多個所述數據表進行篩選,篩選得到兩個以上數據類型一致的數據表;
12、將兩個以上所述數據表合并為一個數據表,并選取每個所述數據表的表名部分字段對其進行重新命名。
13、可選的,對合并后的數據表進行加密處理,并將加密密鑰和加密算法存儲在數據庫頭部的具體步驟,包括:
14、獲取所述診斷設備的用戶信息和設備id,其中,所述用戶信息包括用戶名和用戶令牌;
15、根據所述用戶信息,通過哈希算法生成密鑰;
16、使用所述密鑰對合并后的所述數據表進行加密,并驗證加密數據的完整性和驗證發送者的身份信息;
17、將所述密鑰和加密算法存儲在所述數據庫的頭部。
18、可選的,使用所述密鑰對合并后的所述數據表進行加密,并驗證加密數據的完整性和驗證發送者的身份信息的計算公式為:
19、mac=ck(m)
20、其中,mac表示通過加密計算得到的認證碼,ck表示通過哈希算法生成密鑰,m表示接收到的操作指令。
21、可選的,對數據庫進行測試,判斷是否加密成功的具體步驟,包括:
22、與診斷設備建立連接,以獲取數據庫的數據;
23、通過sqlite打開所述數據庫并驗證數據庫中的數據是否為加密內容;
24、若否,則刪除本地數據庫,并返回對診斷軟件的數據庫進行分析的步驟。
25、本申請還公開了一種基于kotlin語言的軟件加密裝置,還包括:
26、分析模塊,用于對診斷軟件的數據庫進行分析,得到分析結果,其中,所述分析結果包括數據庫存儲位置以及數據庫存儲的數據表;
27、合并模塊,用于根據所述分析結果,篩選得到兩個以上數據類型一致的數據表,并將兩個以上所述數據表合并為一個數據表;
28、加密模塊,用于對合并后的數據表進行加密處理,并將加密密鑰和加密算法存儲在數據庫頭部;
29、測試模塊,用于對數據庫進行測試,判斷是否加密成功。
30、本申請還公開了一種電子設備,所述電子設備包括存儲器和處理器,其中,所述存儲器用于存儲計算機程序,所述處理器用于調用所述計算機程序,使得所述電子設備執行如上述所述的基于kotlin語言的軟件加密的步驟。
31、本申請還公開了一種計算機可讀存儲介質,包括指令,當所述指令在電子設備上運行,使得所述電子設備執行如上述所述的基于kotlin語言的軟件加密的步驟。
32、本申請還公開了一種計算機程序產品,所述計算機程序產品包含計算機指令,當所述計算機指令在電子設備上運行,使得所述電子設備執行如上述所述的基于kotlin語言的軟件加密的步驟。
33、有益效果:本發明通過對診斷軟件的數據庫進行分析,可以得到現有使用的數據庫存在的風險,可以根據風險有針對性地進行保護,通過根據所述分析結果,篩選得到兩個以上數據類型一致的數據表,可以將重要的數據合并處理,節省了資源;通過對合并后的數據表進行加密處理,并將加密密鑰和加密算法存儲在數據庫頭部,避免數據庫被破解,導致重要數據泄露,提高了設備整體的安全性;通過對數據庫進行測試,判斷是否加密成功,通過加密后常規操作驗證,避免出現加密未成功的情況。
1.一種基于kotlin語言的軟件加密方法,應用于診斷設備,所述方法應用于在kotlin語言運行環境中運行的當前應用程序,其特征在于:所述方法包括:
2.根據權利要求1所述基于kotlin語言的軟件加密方法,其特征在于,對診斷軟件的數據庫進行分析,得到分析結果的具體步驟,包括:
3.根據權利要求1所述基于kotlin語言的軟件加密方法,其特征在于,根據所述分析結果,篩選得到兩個以上數據類型一致的數據表,并將兩個以上所述數據表合并為一個數據表的具體步驟,包括:
4.根據權利要求1所述基于kotlin語言的軟件加密方法,其特征在于,對合并后的數據表進行加密處理,并將加密密鑰和加密算法存儲在數據庫頭部的具體步驟,包括:
5.根據權利要求4所述基于kotlin語言的軟件加密方法,其特征在于,使用所述密鑰對合并后的所述數據表進行加密,并驗證加密數據的完整性和驗證發送者的身份信息的計算公式為:
6.根據權利要求1述基于kotlin語言的軟件加密方法,其特征在于,對數據庫進行測試,判斷是否加密成功的具體步驟,包括:
7.一種基于kotlin語言的軟件加密裝置,其特征在于,還包括:
8.一種電子設備,所述電子設備包括存儲器和處理器,其中,所述存儲器用于存儲計算機程序,所述處理器用于調用所述計算機程序,其特征在于,使得所述電子設備執行權利要求1-6中任一項所述的基于kotlin語言的軟件加密方法的步驟。
9.一種計算機可讀存儲介質,包括指令,其特征在于,當所述指令在電子設備上運行,使得所述電子設備執行權利要求1-6中任一項所述的基于kotlin語言的軟件加密方法的步驟。
10.一種計算機程序產品,其特征在于,所述計算機程序產品包含計算機指令,當所述計算機指令在電子設備上運行,使得所述電子設備執行權利要求1-6中任一項所述的基于kotlin語言的軟件加密方法的步驟。