《汉字加密解密程序的创作及实现.docx》由会员分享,可在线阅读,更多相关《汉字加密解密程序的创作及实现.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、汉字加密解密程序的创作及实现摘要:本文依据目前国内汉字加密解密技术稀缺、密文字符可读性和可复制性太差的现状,提出并实现了一种基于gB2312汉字编码的加密解密解决方案。在文中详述了系统的架构、核心算法的实现步骤,并对系统的加解密性能和特征做了分析商量。关键词:gB2312汉字编码汉字信息加密可移植加密解密系统1、随着通信技术和计算机技术的高速进展以及互联网应用的日益普及,计算机网络已经成为大型公司、金融机构、教育机构和政府部门等诸多领域重要信息的交换手段,网络上流通的信息量也呈几何级数增加。但在网络进行信息交换的同时存在着诸多担心全因素,比方信息被窃听、篡改和伪造等,为了有效的爱护、存储、管理
2、和使用网上的私有信息,一方面可以在物理方面实行一些措施,如增添网络物理线路和中间节点的安全性,另一方面可以采纳主动主动的防护措施,比方对传输中的信息进行加密来降低信息泄露而可能导致的损失。然而,目前大多数主流信息加密解密技术都只能应用于如字母、数字、标点符号等单字节字符构成的信息,而可用于计算机汉字这种双字节字符所构成的信息文件加密的既简洁又可靠的密码体制却不多,并且目前加密方法中加密所得的大多数密文可读性及可复制性太差,出现太多不易书写或者分辨的密文字符,如加密后密文字符“鞲?璺,其可复制性和可读性太差,给分辨、书写或复制带来极大不便,不利用密文信息的保存和传递,本文旨在改善这一缺陷。2汉字
3、编码汉字的数量是英文字母数量的几个数量级,基本汉字汉字的偏旁与部首也比英文字母多得多,并且汉字的组合也比英文字母简洁的前后组合冗杂得多,因此我们不能用Ascii码或者其它简洁的单字节编码代替汉字。常用汉字有3500多个,有“总汇汉字之大成评价的康熙字典收录汉字四万多个,在1994年出版的中华字海收录的汉字则多达87019个,而已经通过专家鉴定的北京国安资讯设备公司的汉字字库,收入有出处的汉字有91251个。目前汉字编码中主要用到的有三类,包括gBK,gB2312和Big5,本文讨论以gB2312编码为例。gB2312又称国标码,由国家标准总局在1981年发布并实施,通行于大陆。它是一个简化字的
4、编码规范,共有7445个图形字符,其中汉字占6763个。gB2312规定“对任意一个图形字符都采纳两个字节表示,每个字均采纳七位编码表示,习惯上称第一个字节为“高字节,第二个字节为“低字节。gB2312中汉字的编码范围为,高位字节为0xB0-0xF7(对应十进制为176-247),低位字节0xA1-0xFe对应十进制为161-254。gB2312将代码表分为72个区0xB0-0xF7,对应高位字节;每个区有94个位0xA1-0xFe,对应低位字节,两个字节的值合称为区位码。其中01-09区为符号、数字区,16-87区为汉字区0xb0-0xf7,10-15区、88-94区是有待进一步标准化的空白
5、区。3加密/解密体制在本文所设计的汉字加密系统中,首先从指定的可识别格式如文本文档的文档中读取汉字信息,并根据gB2312编码标准将汉字转换成数字形式,再将汉字的数字形式以特定的加密算法与加密密钥进行加密运算,并将得到的结果转换成gB2312汉字密文字符,最终输出成密文文档。相应的,在解密系统中,首先从特定格式密文文档中读入加密后的汉字,再将密文汉字按gB2312编码标准转换成数字形式,然后根据解密算法与解密密钥进行解密运算,将运算结果转换成gB2312明文字符,最终输出成明文文档。整个系统结构如图一所示。3系统实现3.1汉字编码特征分析gB2312编码中,汉字编码高位字节范围为0xB0-0x
6、F7176-247,共72种取值,低位字节范围为0xA1-0xFe161-254,共94种取值。为了提高密文字符的可读性和可复制性,方便密文的保存和传递,加密后的汉字密文取值范围也指向gB2312汉字区域。3.2汉字与数字编码之间的互相转化在gB2312字符编码表中,汉字用两个字节表示,假设一个汉字的高字节为m1,低字节为m2,c1和c2则分别为密文汉字的高字节和低字节。e1、e2分别为对高、低字节的加密运算函数,则加密的转换可表示为:c1=e1m1(mod72)+176c2=e2m2(mod94)+161解密运算为加密运算的逆过程,假定D1、D2分别为对高、低字节的解密运算函数,解密时对密文
7、汉字的高低字节分别进行解密运算得到明文高、低位字节:m1=D1c1(mod72)+176m2=D2c1(mod94)+161在本系统中,软件先从指定格式文档中逐个读取汉字,将汉字的高位和低位转换成两个数字并分别保存到变量m1、m2中,对m1和m2同时进行加密或者解密运算后得到c1和c2,m1和m2进行转换后可组合成一个gB2312编码的明文汉字,c1和c2进行转换后则可组合成一个gB2312编码的密文汉字。3.3系统算法实现整个系统实现的大致算法如下:3.3.1系统初始化包括汉字存储文件的读取,并从文件中逐个提取需要加密或解密的字符文字存储到相应变量中;设定加、解密判定参数以方便系统智能选择加
8、密或解密操作。3.3.2汉字数字化即将汉字的两个字节独立开来,并将之转换成以序号为标识的数字形式,设读入的汉字为gBword,高字节存放于字符变量m1,低字节存放于字符变量m2。则m1=(unsignedchar)gBword.at(0)-176m2=(unsignedchar)gBword.at(1)-1613.3.3加解密操作判定根据初始化加解密参数对读入的字符进行操作判定,假如是加密则进行加密操作,否则进行解密操作。3.3.4加密或者解密运算本系统中多种算法均可套用,以凯撒挪移码caesarshiftcipher为例,加密运算为:c1=e1m1(mod72)+176=m1+4mod72+
9、176c2=e2m2(mod72)+161=m2+5mod94+161解密运算为:m1=D1c1(mod72)+176=c1-4mod72+176m2=D2c2(mod72)+161=c2-5mod94+1613.3.5数字汉字化将两个所得的数字按gB2312编码表的规律转换成汉字,加密或解密后gB2312编码的高字节为c1+176或m1+176,低字节为c2+161或m2+161,两两组合便可得出gB2312的16进制数字编码,进而得到汉字。3.3.6自动创建一个指定格式的文件,并将已加密或解密的汉字及相应其他未作加、解密处理的字符逐字写入到该文件中。并推断原文件中是否全部汉字均已经完成加、
10、解密操作,假如是则跳到下一步,否则返回第二步。3.3.7保存解密所得的明文文件或加密所得的密文文件,整个系统的加、解密操作结束。整个系统的算法如图二所示。4测试及总结限于篇幅,本文以包含“加密系统实例这一短语的文本文档为例作测试,该短语的gB2312十六进制编码分别为“BcD4BDe3c3DccFB5cDB3cABec0Be,每个汉字中前面两个数字为一个位表示区号,后面两个数字为一个位表示区中的序号。利用本文选用的算法步骤4中的公式进行加密后密文十六进制数字形式为“c0D9c1e8c7e1D3BAD1B8cec3c4c3,根据gB2312编码机制对应的汉字密文为:“蕾凌轻雍迅蚊穆。再经解密算法
11、可以正确的得到十六进制编码字符串“BcD4BDe3c3DccFB5cDB3cABec0Be,即为gB2312编码的汉字明文“加密系统实例。针对目前现有汉字加密技术在密文信息传递方面存在的缺陷,本文采纳改良密文取值域的思路所设计的加解密系统不但可以有效地进行汉字信息加密和解密,还可以依据具体需求特别方便地移植其它加解密算法,系统得到的密文不包含空格、英文、希腊文、俄文、日文和其它可读性较差的符号,有助于密文信息的精确传递和复制。本文所设计的系统简洁有用、可移植性强,加密的密文可读性和可复制性好,有较高有用价值。当然,该系统也还有一些缺乏,比方无法对各种常见格式的汉字编辑文档进行读写,这些都需要进一步完善和改良。本文来源:网络收集与整理,如有侵权,请联系作者删除,谢谢!第8页 共8页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页第 8 页 共 8 页