文件的加密及解密方法
【技術領域】
[0001]本發明涉及列車控制技術領域,具體的說,涉及一種文件的加密及解密方法。
【背景技術】
[0002]列車運行監控記錄裝置是保證列車安全運行的重要組成部分,能夠輔助控制司機對列車的操縱,使列車運行起來更加安全。其中,LKJ2000系統是目前列車運行監控記錄裝置中最為常用的一種。
[0003]LKJ2000系統作為國內主流的列車安全設備,人機交互單元是LKJ2000系統中的重要部件,承擔著以文字、圖形等形式對列車的控制信息、狀態信息等進行有效顯示的工作。目前,LKJ2000系統的人機交互單元的程序及文件更新是通過從專用IC卡中下載對應的程序及文件實現。隨著新型人機交互單元的出現,其存儲容量越來越大,可達到幾個GB,需要更新的程序及文件的數量、大小的也大大增加,例如較大的字庫文件、語音文件等。
[0004]但是,從專用IC卡中下載文件速度較慢,只能達到55KB/S,而且專用IC卡的容量較小,不適合保存較大的文件,目前常用的專用IC卡容量通常只有4MB。如果使用其他大容量、快速傳輸的存儲設備傳輸、下載更新的程序及文件,有難以保證程序及文件的安全性。因此,現有技術中受到安全因素的限制,難以提高程序及文件更新的便捷性。
【發明內容】
[0005]本發明的目的在于提供一種文件的加密及解密方法,以解決現有技術中受到安全因素的限制,難以提高程序及文件更新的便捷性的技術問題。
[0006]本發明提供一種文件的加密方法,包括:
[0007]打開待加密文件;
[0008]在所述待加密文件的特定位置讀取固定字節的數據;
[0009]根據讀取到的字節進行校驗碼的計算,生成校驗碼;
[0010]將所述校驗碼保存在所述待加密文件中,生成加密文件。
[0011]優選的是,在打開待加密文件之前,還包括:
[0012]將更新文件壓縮為壓縮文件,所述壓縮文件作為待加密文件。
[0013]進一步的是,生成加密文件之后,還包括:
[0014]將所述更新文件的版本號保存在所述加密文件中。
[0015]優選的是,所述版本號保存的位置為壓縮文件尾。
[0016]本發明還提供一種文件的解密方法,包括:
[0017]打開加密文件;
[0018]在所述加密文件的特定位置讀取固定字節的數據;
[0019]根據讀取到的字節進行校驗碼的計算,生成校驗碼;
[0020]將生成的校驗碼與所述加密文件中保存的校驗碼進行一致性比較,如果一致,則校驗成功;否則校驗失敗。
[0021]優選的是,所述加密文件為更新文件經壓縮并加密而成的壓縮文件。
[0022]進一步的是,校驗成功后,還包括:
[0023]判斷所述壓縮文件中保存的版本號是否高于當前文件的版本號;
[0024]如果是,則進行文件更新;否則放棄文件更新。
[0025]進一步的是,進行文件更新,具體為:
[0026]去除所述壓縮文件中保存的檢驗碼和版本號;
[0027]解壓縮所述壓縮文件,得到更新文件;
[0028]用所述更新文件替換當前文件。
[0029]本發明帶來了以下有益效果:本發明提供的加密方法中,通過在待加密文件的特定位置讀取固定字節的數據,并計算生成校驗碼,再將校驗碼保存在待加密文件中,生成加密文件。另一方面,本發明提供的解密方法中,也是通過在加密文件的特定位置讀取固定字節的數據,并計算生成校驗碼,再進行一致性比較,實現校驗,從而提高了程序及文件更新的安全性。因此,利用本發明提供的加密及解密方法,就可以安全的使用USB設備等大容量、快速傳輸的存儲設備進行程序及文件的更新,從而提高了程序及文件更新的便捷性。
[0030]本發明的其它特征和優點將在隨后的說明書中闡述,并且,部分的從說明書中變得顯而易見,或者通過實施本發明而了解。本發明的目的和其他優點可通過在說明書、權利要求書以及附圖中所特別指出的結構來實現和獲得。
【附圖說明】
[0031]為了更清楚的說明本發明實施例中的技術方案,下面將對實施例描述中所需要的附圖做簡單的介紹:
[0032]圖1是本發明實施例提供的文件的加密方法的流程圖;
[0033]圖2是本發明實施例提供的文件的解密方法的流程圖;
[0034]圖3是本發明實施例提供的人機交互單元的更新系統的示意圖。
【具體實施方式】
[0035]以下將結合附圖及實施例來詳細說明本發明的實施方式,借此對本發明如何應用技術手段來解決技術問題,并達成技術效果的實現過程能充分理解并據以實施。需要說明的是,只要不構成沖突,本發明中的各個實施例以及各實施例中的各個特征可以相互結合,所形成的技術方案均在本發明的保護范圍之內。
[0036]實施例一:
[0037]本發明實施例提供一種文件的加密方法及解密方法,可應用于LKJ2000系統中人機交互單元的程序及文件的更新。
[0038]本發明實施例中,加密方法用于對人機交互單元的更新文件(需要更新的程序或文件)進行加密,如圖1所示,該加密方法包括以下步驟:
[0039]SlOl:打開待加密文件。
[0040]作為一個優選方案,在進行步驟SlOl之前,可以先將更新文件壓縮為一個壓縮文件,減小更新文件的容量。該壓縮文件即作為本實施例中的待加密文件。
[0041]然后,可以通過軟件,以文件的方式打開該壓縮文件。
[0042]S102:在壓縮文件(待加密文件)的特定位置讀取固定字節的數據。
[0043]該特定位置可以根據具體需求預先設置。例如,可以在壓縮文件的某個位置,讀取一段連續字節的數據;或者,也可以在壓縮文件的多個位置,讀取多個(或多段)字節。
[0044]S103:根據讀取到的字節進行校驗碼的計算,生成校驗碼。
[0045]根據步驟S102讀取到的字節的數據,進行校驗處理,即校驗碼的計算,生成該壓縮文件的校驗碼。因為用于生成校驗碼的字節的數據是從壓縮文件的特定位置讀取的,所以所生成的校驗碼取決于該特定位置的選取。
[0046]S104:將校驗碼保存在壓縮文件(待加密文件)中,生成加密文件。
[0047]生成校驗碼之后,將校驗碼保存在壓縮文件的預定位置中,即可生成加密文件。應當說明的是,本步驟中的預定位置與步驟S102中的特定位置是不同的。此外,本步驟中所生成的加密文件仍然是一個壓縮文件。
[0048]進一步的是,在生成加密文件之后,還可以包括:
[0049]S105:將更新文件的版本號保存在壓縮文件(加密文件)中。
[0050]將本次的更新文件的版本號也保存在壓縮文件中,以便于明顯的標識更新文件的版本。作為一個優選方案,版本號保存的位置可以選取為壓縮文件的壓縮文件尾。
[0051]相應的,本發明實施例還提供一種文件的解密方法,應用于人機交互單元中,具體用于對更新文件進行解密,如圖2所示,該解密方法包括以下步驟:
[0052]S201:打開加密文件。
[0053]本實施例中,該加密文件為更新文件經壓縮并加密而成的壓縮文件。也就是上述加密方法中最終生成的壓縮文件,并且其中保存有校驗碼和版本號。
[0054]S202:在壓縮文件(加密文件)的特定位置讀取固定字節的數據。
[0055]本步驟中的特定位置,應當與上述加密方法的步驟S102中的特定位置相同。
[0056]S203:根據讀取到的字節進行校驗碼的計算,生成校驗碼。
[0057]根據步驟S202讀取到的字節的數據,進行校驗處理,即校驗碼的計算,生成該壓縮文件的校驗碼。因為用于生成校驗碼的字節的數據也是從壓縮文件的相同的特定位置讀取的,所以本步驟中生成的校驗碼應該與上述加密方法的步驟S103中生成的校驗碼相同。
[0058]S204:將生成的校驗碼與壓縮文件(加密文件)中保存的校驗碼進行一致性比較。
[0059]如果比較結果一致,則校驗成功,可以繼續進行文件更新。
[0060]如果比較結果不一致,則校驗失敗,放棄本次文件更新。校驗失敗的原因通常是,步驟S202與步驟S102中讀取的字節的數據不同。
[0061]進一步的是,校驗成功后,還包括:
[0062]S205:判斷壓縮文件(加密文件)中保存的版本號是否高于當前文件的版本號。
[0063]通過讀取保存于壓縮文件尾的版本號,即可獲知本次更新文件的版本。如果更新文件的版本號高于當前文件的版本號,則繼續進行步驟S206,進行文件更新。如果更新文件的版本號低于當前文件的版本號,或者二者相同,則說明本次的更新文件并不是更高的版本