專利名稱:電子文件字符內(nèi)碼變換加密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到一種計(jì)算機(jī)軟件技術(shù),特別是電子文件字符內(nèi)碼變換加密方法。
背景技術(shù):
在背景技術(shù)中,隨著計(jì)算機(jī)技術(shù)的蓬勃發(fā)展,各類應(yīng)用軟件也日益增多,這些應(yīng)用軟件一般都會(huì)產(chǎn)生相應(yīng)的電子文件,如word文檔、cad圖紙、jpg圖片等。如果這些文件中包括保密信息,但對(duì)這些電子文件并沒有進(jìn)行加密處理,那么這些電子文件中的內(nèi)容很容易被人看到或竊取。為解決電子文件的保密管理問題,對(duì)電子文件主要是采用復(fù)雜的軟件加密算法,將電子文件的每位明文變換成相應(yīng)的密文。即使加密文件被竊取,一般無(wú)法讀取正確的信息,從而達(dá)到保護(hù)敏感數(shù)據(jù)的目的。通常加密算法和解密算法存在于應(yīng)用程序中,致使其安全性受到一定程度的限制,較易被破解,常用的加密軟件(如office辦公軟件、winzip、winrar)的加密程序被破解就可以說明這點(diǎn)。為克服這些缺陷,對(duì)電子文件字符內(nèi)碼變換加密方法進(jìn)行了研究。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種電子文件字符內(nèi)碼變換加密方法,它能有效地提高電子文件的安全性,使其不易于破解。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是它包括(1)、加密時(shí),設(shè)置任一加密字符串(包含字母、數(shù)字、控制字符、中文、及其組合),將加密字符串每次順序取一個(gè)字符,對(duì)每位進(jìn)行ORD運(yùn)算(得到字符的機(jī)器內(nèi)碼)后,與固定值進(jìn)行加法運(yùn)算,與固定值進(jìn)行乘法運(yùn)算,并與固定值進(jìn)行減法運(yùn)算,每次得到的結(jié)果進(jìn)行循環(huán)累加,最后得到WORD(16位無(wú)符號(hào)整型)類型整數(shù)S,將S賦給變量KEY;(2)、創(chuàng)建內(nèi)存流M1,M2,將要加密的電子文件讀取到源內(nèi)存流M1,將M1的指針移到首位;然后,循環(huán)進(jìn)行如下過程讀取M1的當(dāng)前字符對(duì)應(yīng)的機(jī)器內(nèi)碼(字母和數(shù)字等符號(hào)對(duì)應(yīng)的是ASCII碼,漢字編碼由兩個(gè)字節(jié)組成,每次讀取的只是漢字的一個(gè)字節(jié)),將機(jī)器內(nèi)碼賦給變量C,此時(shí)指針自動(dòng)移到下一字符位置;KEY與固定值8進(jìn)行SHR運(yùn)算(二進(jìn)制位值右移)后,與C一起進(jìn)行XOR運(yùn)算(按位的邏輯異或運(yùn)算),再進(jìn)行NOT運(yùn)算(逐位進(jìn)行二進(jìn)制值反向運(yùn)算),然后將結(jié)果賦給C,再將C寫入M2的末尾;KEY與C進(jìn)行加法運(yùn)算,并將結(jié)果再與固定值C1進(jìn)行乘法運(yùn)算,再與固定值C2進(jìn)行加法運(yùn)算,結(jié)果再賦給KEY;
當(dāng)上述循環(huán)讀取到M1的末尾時(shí),退出循環(huán),并將M2的內(nèi)容導(dǎo)出為電子文件,至此,文件F已變?yōu)槊芪模用苓^程完成;(3)、當(dāng)解密時(shí),讀取加密過程設(shè)置的加密字符串,按照同樣方法得到WORD型整數(shù)S,并將S賦給KEY;(4)、創(chuàng)建內(nèi)存流M1,M2,將要解密的文件F讀取到源內(nèi)存流M1,將M1的指針移到首位;然后,循環(huán)進(jìn)行如下過程讀取M1的當(dāng)前字符對(duì)應(yīng)的機(jī)器內(nèi)碼(此時(shí)指針自動(dòng)移到下一字符位置),并將機(jī)器內(nèi)碼賦給變量C和O;KEY與固定值8進(jìn)行SHR運(yùn)算后,與C一起進(jìn)行XOR運(yùn)算,再進(jìn)行NOT運(yùn)算,然后將結(jié)果賦給C(此時(shí)C已變換為明文),再將C寫入M2的末尾;KEY再與0進(jìn)行加法運(yùn)算,并將結(jié)果再固定值C1進(jìn)行乘法運(yùn)算,再與固定值C2進(jìn)行加法運(yùn)算,結(jié)果再賦給KEY;當(dāng)上述循環(huán)讀取到M1的末尾時(shí),退出循環(huán),并將M2的內(nèi)容導(dǎo)出為電子文件,至此,文件F已變?yōu)槊魑模饷苓^程完成。
本發(fā)明同背景技術(shù)相比所產(chǎn)生的有益效果1、由于本發(fā)明是通過對(duì)計(jì)算機(jī)電子文件存儲(chǔ)字符機(jī)器內(nèi)碼進(jìn)行數(shù)學(xué)算法變換,提高了加密算法的復(fù)雜性,改變了每次加密時(shí)的變量KEY,且由于加密文件中不含有加密密碼,故能有效地提高電子文件的安全性,使其不易于破解。
圖1為本發(fā)明的加密流程框圖。
圖2為本發(fā)明的解密流程框圖。
具體實(shí)施例方式參照附圖1,對(duì)某一文本文件F,假設(shè)內(nèi)容為“g中”,加密密碼為“!#FA”,常量C1,C2的值分別為52845,22719。
加密過程首先取得“!”的機(jī)器內(nèi)碼為33,通過以下運(yùn)算(33+1)*10-9后得到結(jié)果331,再對(duì)“#”、“F”、“A”作同樣運(yùn)算,分別得到341、651、701,將其累加后得2024,至此,KEY的初始值為2024。
創(chuàng)建內(nèi)存流M1,M2,將文件F導(dǎo)入M1后,將指針移到首位。循環(huán)進(jìn)行以下過程讀取M1的當(dāng)前字符“g”,得到機(jī)器內(nèi)碼為103,將103賦給變量C。KEY與8進(jìn)行SHR運(yùn)算,結(jié)果得7。C與7進(jìn)行XOR運(yùn)算后得96,96進(jìn)行NOT運(yùn)算后得159,將159賦給變量C;KEY與C進(jìn)行加法運(yùn)算后得2183,2183與C1進(jìn)行乘法運(yùn)算后得115360635,115360635與C2進(jìn)行加法運(yùn)算后得115383354,將115383354的二進(jìn)制代碼取16位(高位截除不要),得二進(jìn)制序列為“1001110000111010”(即十進(jìn)制數(shù)39994),并將39994賦給KEY。此時(shí),C變量為159,KEY變量為39994。將C寫入M2。
循環(huán)進(jìn)行到第二次時(shí),讀取的是中文字符“中”,因?yàn)闈h字的內(nèi)碼為兩個(gè)字符長(zhǎng)度,因此,只讀取“中”字的前半部分,即得到機(jī)器內(nèi)碼為“214”,將“214”賦給C,經(jīng)過同樣以上運(yùn)算,最后得C為181,KEY為31874,循環(huán)到第三次時(shí),“中”字的后半部分機(jī)器內(nèi)碼為“208”,得C為83,KEY為58736。
最后,將M2導(dǎo)出到文件F,即得到由“159”、“181”、“83”序列組成的機(jī)器內(nèi)碼,對(duì)應(yīng)到字符就變成了“ S”,至此,已完成加密過程。
參看附圖2,解密過程對(duì)加密密碼“!#FA”,與上相同,首先取得“!”的機(jī)器內(nèi)碼為33,通過以下運(yùn)算(33+1)*10-9后得到結(jié)果331,再對(duì)“#”、“F”、“A”作同樣運(yùn)算,分別得到341、651、701,將其累加后得2024,至此,KEY的初始值為2024。創(chuàng)建內(nèi)存流M1,M2,將含有密文內(nèi)容為“ S”的文件F導(dǎo)入M1,將指針移到首位。
循環(huán)進(jìn)行以下過程讀取M1的當(dāng)前字符 的前半部分,得到機(jī)器內(nèi)碼為159,將159賦給變量C和O。KEY與8進(jìn)行SHR運(yùn)算,結(jié)果得7。C與7進(jìn)行XOR運(yùn)算后得152,152進(jìn)行NOT運(yùn)算后得103,將103賦給變量C;KEY與0進(jìn)行加法運(yùn)算后得2183,2183與C1進(jìn)行乘法運(yùn)算后得115360635,115360635與C2進(jìn)行加法運(yùn)算后得115383354,將115383354的二進(jìn)制代碼取16位(高位截除不要),得二進(jìn)制序列為“1001110000111010”(即十進(jìn)制數(shù)39994),并將39994賦給KEY。此時(shí),C變量為103,KEY變量為39994。將C寫入M2。
循環(huán)進(jìn)行到第二次時(shí),讀取的是 的后半部分,即得到機(jī)器內(nèi)碼為“181”,將“181”賦給C,經(jīng)過同樣以上運(yùn)算,最后得C為214,KEY為31874,循環(huán)到第三次時(shí),“S”的機(jī)器內(nèi)碼為“83”,經(jīng)運(yùn)算后得C為208,KEY為58736。
最后,將M2導(dǎo)出到文件F,印得到由“103”、“214”、“208”序列組成的機(jī)器內(nèi)碼,對(duì)應(yīng)到字符就變成了“g中”。至此,已完成解密過程。
權(quán)利要求
1.一種電子文件字符內(nèi)碼變換加密方法,其特征在于它包括(1)、加密時(shí),設(shè)置任一加密字符串(包含字母、數(shù)字、控制字符、中文、及其組合),將加密字符串每次順序取一個(gè)字符,對(duì)每位進(jìn)行ORD運(yùn)算(得到字符的機(jī)器內(nèi)碼)后,與固定值進(jìn)行加法運(yùn)算,與固定值進(jìn)行乘法運(yùn)算,并與固定值進(jìn)行減法運(yùn)算,每次得到的結(jié)果進(jìn)行循環(huán)累加,最后得到WORD(16位無(wú)符號(hào)整型)類型整數(shù)S,將S賦給變量KEY;(2)、創(chuàng)建內(nèi)存流M1,M2,將要加密的電子文件讀取到源內(nèi)存流M1,將M1的指針移到首位;然后,循環(huán)進(jìn)行如下過程讀取M1的當(dāng)前字符對(duì)應(yīng)的機(jī)器內(nèi)碼(字母和數(shù)字等符號(hào)對(duì)應(yīng)的是ASCII碼,漢字編碼由兩個(gè)字節(jié)組成,每次讀取的只是漢字的一個(gè)字節(jié)),將機(jī)器內(nèi)碼賦給變量C,此時(shí)指針自動(dòng)移到下一字符位置;KEY與固定值8進(jìn)行SHR運(yùn)算(二進(jìn)制位值右移)后,與C一起進(jìn)行XOR運(yùn)算(按位的邏輯異或運(yùn)算),再進(jìn)行NOT運(yùn)算(逐位進(jìn)行二進(jìn)制值反向運(yùn)算),然后將結(jié)果賦給C,再將C寫入M2的末尾;KEY與C進(jìn)行加法運(yùn)算,并將結(jié)果再與固定值C1進(jìn)行乘法運(yùn)算,再與固定值C2進(jìn)行加法運(yùn)算,結(jié)果再賦給KEY;當(dāng)上述循環(huán)讀取到M1的末尾時(shí),退出循環(huán),并將M2的內(nèi)容導(dǎo)出為電子文件,至此,文件F已變?yōu)槊芪?,加密過程完成;(3)、當(dāng)解密時(shí),讀取加密過程設(shè)置的加密字符串,按照同樣方法得到WORD型整數(shù)S,并將S賦給KEY;(4)、創(chuàng)建內(nèi)存流M1,M2,將要解密的文件F讀取到源內(nèi)存流M1,將M1的指針移到首位;然后,循環(huán)進(jìn)行如下過程讀取M1的當(dāng)前字符對(duì)應(yīng)的機(jī)器內(nèi)碼(此時(shí)指針自動(dòng)移到下一字符位置),并將機(jī)器內(nèi)碼賦給變量C和0;KEY與固定值8進(jìn)行SHR運(yùn)算后,與C一起進(jìn)行XOR運(yùn)算,再進(jìn)行NOT運(yùn)算,然后將結(jié)果賦給C(此時(shí)C已變換為明文),再將C寫入M2的末尾;KEY再與0進(jìn)行加法運(yùn)算,并將結(jié)果再固定值C1進(jìn)行乘法運(yùn)算,再與固定值C2進(jìn)行加法運(yùn)算,結(jié)果再賦給KEY,當(dāng)上述循環(huán)讀取到M1的末尾時(shí),退出循環(huán),并將M2的內(nèi)容導(dǎo)出為電子文件,至此,文件F已變?yōu)槊魑?,解密過程完成。
全文摘要
本發(fā)明公開了一種電子文件字符內(nèi)碼變換加密方法,主要技術(shù)特征是它設(shè)置任一加密字符串,將加密字符串每次順序取一個(gè)字符,對(duì)計(jì)算機(jī)電子文件存儲(chǔ)字符機(jī)器內(nèi)碼進(jìn)行數(shù)學(xué)算法變換,提高了加密算法的復(fù)雜性,改變了每次加密時(shí)的變量KEY,且加密文件中不含有加密密碼,來實(shí)現(xiàn)電子文件的加密解密。具有能有效地提高電子文件的安全性,使其不易于破解等特點(diǎn)。
文檔編號(hào)G06F12/14GK1542628SQ03125058
公開日2004年11月3日 申請(qǐng)日期2003年5月4日 優(yōu)先權(quán)日2003年5月4日
發(fā)明者袁海強(qiáng), 陳進(jìn) 申請(qǐng)人:江南機(jī)器(集團(tuán))有限公司