文件的加密方法、解密方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及文件加密、解密技術(shù)領(lǐng)域,尤其涉及一種文件的加密方法、解密方法及
目.0
【背景技術(shù)】
[0002]密碼技術(shù)是信息安全的核心技術(shù),加密方法和解密方法可以保證文件的機密性和完整性。通常,現(xiàn)有的文件加密方法、解密方法大多是對文件本身進行加解密,加密后的文件的格式和屬性均發(fā)生了改變。如果運行文件的設(shè)備對軟硬件性能及文件格式有要求的話,那么現(xiàn)有的加密方法和解密方法就無法照搬適用,也就不能實現(xiàn)對文件的有效保護。
[0003]以風電領(lǐng)域中的文件進行加解密操作為例,風力發(fā)電機組的初始化文件屬于關(guān)鍵性文件,其用在機組主控制器中,主控制器一般為可編程邏輯控制器,可編程邏輯控制器對硬件和軟件性能就有一定的限制,對文件格式也有相應(yīng)的要求。因此,前述方法并不適用于初始化文件的加解密,從而也無法避免初始化文件被誤操作或是人為惡意修改帶來的安全隱患。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例的目的在于,提供一種文件的加密方法、解密方法及裝置,以實現(xiàn)對關(guān)鍵性文件的保護,避免因誤操作或人為惡意修改文件帶來的安全隱患。
[0005]為實現(xiàn)上述發(fā)明目的,本發(fā)明的實施例提供了一種文件的加密方法,所述方法包括:獲取包括至少一個行數(shù)據(jù)的文件;利用預(yù)定的加密密鑰逐個對所述行數(shù)據(jù)進行加密,得到所述文件的密文;對所述密文進行循環(huán)冗余校驗CRC運算得到校驗數(shù)據(jù);根據(jù)所述校驗數(shù)據(jù)和所述密文生成加密的文件。
[0006]本發(fā)明的實施例還提供了一種文件的解密方法,所述方法包括:獲取包括至少一個加密行數(shù)據(jù)的加密文件,所述加密行數(shù)據(jù)包括第一校驗數(shù)據(jù);逐個對所述加密行數(shù)據(jù)進行循環(huán)冗余校驗CRC運算得到相應(yīng)的第二校驗數(shù)據(jù);如果所述第二校驗數(shù)據(jù)與所述第一校驗數(shù)據(jù)匹配,則利用預(yù)定的加密密鑰對所述加密行數(shù)據(jù)進行解密,并合并各個解密得到的行數(shù)據(jù)生成解密的文件。
[0007]本發(fā)明的實施例還提供了一種文件的加密裝置,所述裝置包括:文件獲取模塊,用于獲取包括至少一個行數(shù)據(jù)的文件;文件加密模塊,用于利用預(yù)定的加密密鑰逐個對所述行數(shù)據(jù)進行加密,得到所述文件的密文;校驗數(shù)據(jù)運算模塊,用于對所述密文進行循環(huán)冗余校驗CRC運算得到校驗數(shù)據(jù);加密文件生成模塊,用于根據(jù)所述校驗數(shù)據(jù)和所述密文生成加密的文件。
[0008]本發(fā)明的實施例還提供了一種文件的解密裝置,所述裝置包括:加密文件獲取模塊,用于獲取包括至少一個加密行數(shù)據(jù)的加密文件,所述加密行數(shù)據(jù)包括第一校驗數(shù)據(jù);校驗數(shù)據(jù)運算模塊,用于逐個對所述加密行數(shù)據(jù)進行循環(huán)冗余校驗CRC運算得到相應(yīng)的第二校驗數(shù)據(jù);文件解密模塊,用于如果所述第二校驗數(shù)據(jù)與所述第一校驗數(shù)據(jù)匹配,則利用預(yù)定的加密密鑰對所述加密行數(shù)據(jù)進行解密,并合并各個解密得到的行數(shù)據(jù)生成解密的文件。
[0009]本發(fā)明實施例提供的文件的加密方法、解密方法及裝置,采用加密密鑰和校驗數(shù)據(jù)相結(jié)合的方式逐行對文件進行加密,從而實現(xiàn)了在不改變文件格式和屬性的情況下對關(guān)鍵性文件的保護,避免了因誤操作或人為惡意修改文件帶來的安全隱患。
【附圖說明】
[0010]圖1為本發(fā)明實施例一的文件的加密方法的流程示意圖;
[0011]圖2為本發(fā)明實施例二的文件的解密方法的流程示意圖;
[0012]圖3為本發(fā)明實施例三的文件的加密裝置的結(jié)構(gòu)示意圖;
[0013]圖4為本發(fā)明實施例四的文件的解密裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0014]下面結(jié)合附圖對本發(fā)明實施例文件的加密方法、解密方法及裝置進行詳細描述。
[0015]實施例一
[0016]圖1為本發(fā)明實施例一的文件的加密方法的流程示意圖,如圖1所示,文件的加密方法包括:
[0017]步驟101:獲取包括至少一個行數(shù)據(jù)的文件。
[0018]這里,所述至少一個行數(shù)據(jù)的文件可以是本身就是以行為單位存儲數(shù)據(jù)的文件,或者還可以是將文件中數(shù)據(jù)劃分成行數(shù)據(jù)的文件。
[0019]以風力發(fā)電機組的初始化文件為例,初始化文件就是前述提及的以行為單位存儲數(shù)據(jù)的文件,其每行保存一項風力發(fā)電機組運行參數(shù)信息,也就是說,風力發(fā)電機組的初始化文件是包括多個行數(shù)據(jù)的文件,每個行數(shù)據(jù)均代表一項風力發(fā)電機組運行參數(shù)。
[0020]步驟102:利用預(yù)定的加密密鑰逐個對行數(shù)據(jù)進行加密,得到文件的密文。
[0021]相應(yīng)地,對文件中的每一行數(shù)據(jù)進行二進制數(shù)據(jù)轉(zhuǎn)換,對二進制數(shù)據(jù)轉(zhuǎn)換后的行數(shù)據(jù)進行移位處理,將移位處理后的行數(shù)據(jù)與加密密鑰進行異或運算,得到加密行數(shù)據(jù),合并各個加密行數(shù)據(jù)得到密文。這里,加密密鑰可為一組長度為8位的十六進制字符串,該加密密鑰可靈活設(shè)置,不同的用戶可采用不同的加密密鑰對文件加密,從而保障了文件在不同用戶間使用時的技術(shù)保密。
[0022]步驟103:對密文進行循環(huán)冗余校驗CRC運算得到校驗數(shù)據(jù)。
[0023]具體地,對每個加密行數(shù)據(jù)進行CRC運算,得到與每個加密行數(shù)據(jù)相應(yīng)的校驗數(shù)據(jù)。
[0024]步驟104:根據(jù)校驗數(shù)據(jù)和密文生成加密的文件。
[0025]如前所述,在校驗運算得到校驗數(shù)據(jù)之后,就可以由加密行數(shù)據(jù)和其相應(yīng)的校驗數(shù)據(jù)生成新的行數(shù)據(jù),最終合并各個新的行數(shù)據(jù)生成加密的文件。需要說明的是,加密的文件的格式和屬性均未改變,原有編輯器可以正常打開和顯示文件內(nèi)容,但其表達的信息和原信息已完全不同,不具有可讀性。
[0026]仍然以前述風力發(fā)電機組初始化文件為例,經(jīng)過這一步驟的處理之后,加密的初始化文件已讀不到風力發(fā)電機組運行參數(shù)信息,從而有效隱藏了初始化文件中的內(nèi)容。
[0027]下面結(jié)合具體的處理示例,來進一步更直觀地說明一下本發(fā)明實施例在風電領(lǐng)域的具體應(yīng)用。
[0028]風力發(fā)電機組的初始化文件為文本文件,為便于合法用戶查看機組運行參數(shù),其每行信息的識別性和可讀性都很強。以風力發(fā)電機組初始化文件中的某個行數(shù)據(jù)init_windturbine_nr = I”為例進行說明。假設(shè)采用的密鑰碼為6D5B9ACB。對行數(shù)據(jù)進行二進制轉(zhuǎn)換及移位處理后,再與密鑰碼“6D5B9ACB”進行異或運算,得到的加密行數(shù)據(jù)為6C2962664DCF2962664DE514625122EC2159501302F4385B08E04758。對該加密行數(shù)據(jù)進行CRC運算,得到相應(yīng)的校驗數(shù)據(jù)為54615。將加密行數(shù)據(jù)和校驗數(shù)據(jù)進行組合,得到新的行數(shù)據(jù)為 6C2962664DCF2962664DE514625122EC2159501302F4385B08E0475854615。
[0029]運用上述同樣的方法,對初始化文件中的所有行數(shù)據(jù)進行處理后,即可得到加密的初始化文件。從而使得初始化文件在方便使用的同時也避免了誤操作或人為惡意修改運行參數(shù)的情況發(fā)生,從而保證機組的安全穩(wěn)定運行。
[0030]本發(fā)明的文件的加密方法,采用加密密鑰和校驗數(shù)據(jù)相結(jié)合的方式逐行對文件進行加密,最終生成加密的文件。從而實現(xiàn)了在不改變文件格式和屬性的情況下對關(guān)鍵性文件的保護,避免了因誤操作或人為惡意修改文件帶來的安全隱患。
[0031]實施例二
[0032]圖2為本發(fā)明實施例二的文件的解密方法的流程示意圖,如圖2所示,文件的解密方法包括:
[0033]步驟201:獲取包括至少一個加密行數(shù)據(jù)的加密文件。
[0034]這里,如前述實施例一所述文件的加密方法,生成的加密文件中包括多個加密行數(shù)據(jù),每個加密行數(shù)據(jù)包括各自的校驗數(shù)據(jù)。相應(yīng)地,加密行數(shù)據(jù)包括第一校驗數(shù)據(jù)。
[0035]步驟202:逐個對加密行數(shù)據(jù)進行CRC運算得到相應(yīng)的第二校驗數(shù)據(jù)。
[0036]步驟203:如果第二校驗數(shù)據(jù)與第一校驗數(shù)據(jù)匹配,則利用預(yù)定的加密密鑰對加密行數(shù)據(jù)進行解密,并合并各個解密得到的行數(shù)據(jù)生成解密的文件。
[0037]也就是說,將第二校驗數(shù)據(jù)與第一校驗數(shù)據(jù)進行比對,如果第二校驗數(shù)據(jù)與第一校驗數(shù)據(jù)匹配,則說明該加密行數(shù)據(jù)有效,就利用加密密鑰和前述實施例一中步驟102的逆過程對加密行數(shù)據(jù)進行解密,這里,本步驟的設(shè)定的加密密鑰為加密時使用的密鑰,即加密過程和解密過程使用相同的密鑰。加密文件中的每個加密行數(shù)據(jù)均采用上述方法,在此不做累述。最終,合并各個解密得到的行數(shù)據(jù)生成解密的文件。
[0038]進一步地,為了判斷文件是否被修改,并定位被修改的行,該解密方法還可以包括:如果第二校驗數(shù)據(jù)與第一校驗數(shù)據(jù)不匹配,則提示加密行數(shù)據(jù)為無效數(shù)據(jù),結(jié)束解密方法的處理。
[0039]本發(fā)明的文件的解密方法,通過將加密行數(shù)據(jù)中的校驗數(shù)據(jù)與對加密行數(shù)據(jù)進行CRC運算得到的校