电子文件字符内码变换加密方法

文档序号:6358522阅读:681来源:国知局
专利名称:电子文件字符内码变换加密方法
技术领域
本发明涉及到一种计算机软件技术,特别是电子文件字符内码变换加密方法。
背景技术
在背景技术中,随着计算机技术的蓬勃发展,各类应用软件也日益增多,这些应用软件一般都会产生相应的电子文件,如word文档、cad图纸、jpg图片等。如果这些文件中包括保密信息,但对这些电子文件并没有进行加密处理,那么这些电子文件中的内容很容易被人看到或窃取。为解决电子文件的保密管理问题,对电子文件主要是采用复杂的软件加密算法,将电子文件的每位明文变换成相应的密文。即使加密文件被窃取,一般无法读取正确的信息,从而达到保护敏感数据的目的。通常加密算法和解密算法存在于应用程序中,致使其安全性受到一定程度的限制,较易被破解,常用的加密软件(如office办公软件、winzip、winrar)的加密程序被破解就可以说明这点。为克服这些缺陷,对电子文件字符内码变换加密方法进行了研究。

发明内容
本发明所要解决的技术问题是提供一种电子文件字符内码变换加密方法,它能有效地提高电子文件的安全性,使其不易于破解。
本发明解决其技术问题所采用的技术方案是它包括(1)、加密时,设置任一加密字符串(包含字母、数字、控制字符、中文、及其组合),将加密字符串每次顺序取一个字符,对每位进行ORD运算(得到字符的机器内码)后,与固定值进行加法运算,与固定值进行乘法运算,并与固定值进行减法运算,每次得到的结果进行循环累加,最后得到WORD(16位无符号整型)类型整数S,将S赋给变量KEY;(2)、创建内存流M1,M2,将要加密的电子文件读取到源内存流M1,将M1的指针移到首位;然后,循环进行如下过程读取M1的当前字符对应的机器内码(字母和数字等符号对应的是ASCII码,汉字编码由两个字节组成,每次读取的只是汉字的一个字节),将机器内码赋给变量C,此时指针自动移到下一字符位置;KEY与固定值8进行SHR运算(二进制位值右移)后,与C一起进行XOR运算(按位的逻辑异或运算),再进行NOT运算(逐位进行二进制值反向运算),然后将结果赋给C,再将C写入M2的末尾;KEY与C进行加法运算,并将结果再与固定值C1进行乘法运算,再与固定值C2进行加法运算,结果再赋给KEY;
当上述循环读取到M1的末尾时,退出循环,并将M2的内容导出为电子文件,至此,文件F已变为密文,加密过程完成;(3)、当解密时,读取加密过程设置的加密字符串,按照同样方法得到WORD型整数S,并将S赋给KEY;(4)、创建内存流M1,M2,将要解密的文件F读取到源内存流M1,将M1的指针移到首位;然后,循环进行如下过程读取M1的当前字符对应的机器内码(此时指针自动移到下一字符位置),并将机器内码赋给变量C和O;KEY与固定值8进行SHR运算后,与C一起进行XOR运算,再进行NOT运算,然后将结果赋给C(此时C已变换为明文),再将C写入M2的末尾;KEY再与0进行加法运算,并将结果再固定值C1进行乘法运算,再与固定值C2进行加法运算,结果再赋给KEY;当上述循环读取到M1的末尾时,退出循环,并将M2的内容导出为电子文件,至此,文件F已变为明文,解密过程完成。
本发明同背景技术相比所产生的有益效果1、由于本发明是通过对计算机电子文件存储字符机器内码进行数学算法变换,提高了加密算法的复杂性,改变了每次加密时的变量KEY,且由于加密文件中不含有加密密码,故能有效地提高电子文件的安全性,使其不易于破解。


图1为本发明的加密流程框图。
图2为本发明的解密流程框图。
具体实施例方式参照附图1,对某一文本文件F,假设内容为“g中”,加密密码为“!#FA”,常量C1,C2的值分别为52845,22719。
加密过程首先取得“!”的机器内码为33,通过以下运算(33+1)*10-9后得到结果331,再对“#”、“F”、“A”作同样运算,分别得到341、651、701,将其累加后得2024,至此,KEY的初始值为2024。
创建内存流M1,M2,将文件F导入M1后,将指针移到首位。循环进行以下过程读取M1的当前字符“g”,得到机器内码为103,将103赋给变量C。KEY与8进行SHR运算,结果得7。C与7进行XOR运算后得96,96进行NOT运算后得159,将159赋给变量C;KEY与C进行加法运算后得2183,2183与C1进行乘法运算后得115360635,115360635与C2进行加法运算后得115383354,将115383354的二进制代码取16位(高位截除不要),得二进制序列为“1001110000111010”(即十进制数39994),并将39994赋给KEY。此时,C变量为159,KEY变量为39994。将C写入M2。
循环进行到第二次时,读取的是中文字符“中”,因为汉字的内码为两个字符长度,因此,只读取“中”字的前半部分,即得到机器内码为“214”,将“214”赋给C,经过同样以上运算,最后得C为181,KEY为31874,循环到第三次时,“中”字的后半部分机器内码为“208”,得C为83,KEY为58736。
最后,将M2导出到文件F,即得到由“159”、“181”、“83”序列组成的机器内码,对应到字符就变成了“ S”,至此,已完成加密过程。
参看附图2,解密过程对加密密码“!#FA”,与上相同,首先取得“!”的机器内码为33,通过以下运算(33+1)*10-9后得到结果331,再对“#”、“F”、“A”作同样运算,分别得到341、651、701,将其累加后得2024,至此,KEY的初始值为2024。创建内存流M1,M2,将含有密文内容为“ S”的文件F导入M1,将指针移到首位。
循环进行以下过程读取M1的当前字符 的前半部分,得到机器内码为159,将159赋给变量C和O。KEY与8进行SHR运算,结果得7。C与7进行XOR运算后得152,152进行NOT运算后得103,将103赋给变量C;KEY与0进行加法运算后得2183,2183与C1进行乘法运算后得115360635,115360635与C2进行加法运算后得115383354,将115383354的二进制代码取16位(高位截除不要),得二进制序列为“1001110000111010”(即十进制数39994),并将39994赋给KEY。此时,C变量为103,KEY变量为39994。将C写入M2。
循环进行到第二次时,读取的是 的后半部分,即得到机器内码为“181”,将“181”赋给C,经过同样以上运算,最后得C为214,KEY为31874,循环到第三次时,“S”的机器内码为“83”,经运算后得C为208,KEY为58736。
最后,将M2导出到文件F,印得到由“103”、“214”、“208”序列组成的机器内码,对应到字符就变成了“g中”。至此,已完成解密过程。
权利要求
1.一种电子文件字符内码变换加密方法,其特征在于它包括(1)、加密时,设置任一加密字符串(包含字母、数字、控制字符、中文、及其组合),将加密字符串每次顺序取一个字符,对每位进行ORD运算(得到字符的机器内码)后,与固定值进行加法运算,与固定值进行乘法运算,并与固定值进行减法运算,每次得到的结果进行循环累加,最后得到WORD(16位无符号整型)类型整数S,将S赋给变量KEY;(2)、创建内存流M1,M2,将要加密的电子文件读取到源内存流M1,将M1的指针移到首位;然后,循环进行如下过程读取M1的当前字符对应的机器内码(字母和数字等符号对应的是ASCII码,汉字编码由两个字节组成,每次读取的只是汉字的一个字节),将机器内码赋给变量C,此时指针自动移到下一字符位置;KEY与固定值8进行SHR运算(二进制位值右移)后,与C一起进行XOR运算(按位的逻辑异或运算),再进行NOT运算(逐位进行二进制值反向运算),然后将结果赋给C,再将C写入M2的末尾;KEY与C进行加法运算,并将结果再与固定值C1进行乘法运算,再与固定值C2进行加法运算,结果再赋给KEY;当上述循环读取到M1的末尾时,退出循环,并将M2的内容导出为电子文件,至此,文件F已变为密文,加密过程完成;(3)、当解密时,读取加密过程设置的加密字符串,按照同样方法得到WORD型整数S,并将S赋给KEY;(4)、创建内存流M1,M2,将要解密的文件F读取到源内存流M1,将M1的指针移到首位;然后,循环进行如下过程读取M1的当前字符对应的机器内码(此时指针自动移到下一字符位置),并将机器内码赋给变量C和0;KEY与固定值8进行SHR运算后,与C一起进行XOR运算,再进行NOT运算,然后将结果赋给C(此时C已变换为明文),再将C写入M2的末尾;KEY再与0进行加法运算,并将结果再固定值C1进行乘法运算,再与固定值C2进行加法运算,结果再赋给KEY,当上述循环读取到M1的末尾时,退出循环,并将M2的内容导出为电子文件,至此,文件F已变为明文,解密过程完成。
全文摘要
本发明公开了一种电子文件字符内码变换加密方法,主要技术特征是它设置任一加密字符串,将加密字符串每次顺序取一个字符,对计算机电子文件存储字符机器内码进行数学算法变换,提高了加密算法的复杂性,改变了每次加密时的变量KEY,且加密文件中不含有加密密码,来实现电子文件的加密解密。具有能有效地提高电子文件的安全性,使其不易于破解等特点。
文档编号G06F12/14GK1542628SQ03125058
公开日2004年11月3日 申请日期2003年5月4日 优先权日2003年5月4日
发明者袁海强, 陈进 申请人:江南机器(集团)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1