admin管理员组文章数量:1532644
2024年6月4日发(作者:)
基于常见加密算法的加解密工具设计
作者:陈一帆
来源:《中国新通信》 2018年第19期
【摘要】 本文介绍了一种多功能加解密工具的设计过程。该工具支持Url、Hex、Base64、
Ascii、MD5 等几种加密算法。本文对该工具涉及的相关加密算法进行了简要说明,并在增强容
错能力、改善中文兼容性、实现智能解密等方面提出了独到的思路和可行的方案。
【关键词】 密码学 加密算法 渗透测试
密码学在信息安全领域中占据着重要的一部分,为了提高信息传输过程的安全性,大部分
网页在传输信息的过程中都会将传输的内容进行加密。现在的加密方式虽然种类众多,常用的
网页加密方式只有Url、Hex、Base64、Ascii、MD5 等几种。为了对常见的各种加密方式进行
快速而便利的加解密,一款使用简单、容错能力强、中文兼容性好、能智能判断加密方式的多
功能加解密工具很有市场价值。
一、开发目标
1、目前状况。目前网络上同类型的工具大多数为爱好者自行开发,基本上都有常见加密方
式的加解密功能。但实际使用时普遍感觉不够便利,原因是容错能力不强,不支持中文加解密,
用户界面也不够友好。2、预期功能,开发本加解密工具的目的在于综合其他加解密工具的优点:
如支持多种加解密算法,体积小、运行速度快等。同时也应当避免其他加解密工具的缺点,如
容错能力差,对中文兼容性不好,操作繁琐等。预期开发完成的加解密工具应当支持Url、Hex、
Base64、Ascii、MD5 等多种加密方式,具有容错能力强,中文兼容性好,能智能判断加密方式
等优点。
二、常见算法介绍
1、Url 算法。该算法以字节为单位进行加密,将每个字节的内容用两位16 进制表示,然
后在每个字节前加% 符号。通过该方式加密的文本特征是% 符号约占三分之一,其余内容均为
0-F 的十六进制数。2、Hex 算法。该算法以字节为单位进行加密,将每个字节的内容用两位
16 进制表示,然后在文本最前方加0x 符号。通过该方式加密的文本特征是以0x 开头,后面
的内容均为0-F 的十六进制数。3、Base64 算法。该算法以每三个字节为单位进行加密,将三
个字节的内容拆分为四位64 进制数,然后用数字、大小写字母以及其他符号为64 进制数进行
编码,如果有空余的位置用= 符号补足。通过该方式加密的文本特征是以无规律的字母和数字
为主,长度为4 的倍数,末尾可能有一到两个= 符号。4、Ascii 算法。该算法以字节为单位
进行加密,将每个字节的内容转换为十进制数,然后用空格进行分隔。通过该方式加密的文本
特征是大部分内容为数字,每两到三位数字之间有空格进行分隔。5、MD5 算法。该算法为单向
的哈希算法,可以将任意长度的字符串抽象为32 位或16 位的摘要,由于该算法具有不可逆性、
抗修改性、强抗碰撞性等特点,因此经常被用于软件的数字签名。该方式加密的文本特征是长
度为32 位或16 位,并且内容均为0-F 的十六进制数。
三、容错原理与中文兼容性
由于以上的几种加密算法在原理上都支持对任意长度,任意内容的字符串进行加密,因此
加密算法的编写较为简单,包括中文的加密也是如此,一般系统默认使用GB2312 编码,将一
个汉字编码成两个字节,对这两个字节分别加密即可。主要的难点在解密算法上。因为加密算
法生成的格式是固定的,但在实际工作中,获取到的加密数据往往会有缺失和错漏,如果直接
进行解密,就会因为不符合加密格式而导致错误。这也是网络上大部分同类型工具的缺点。本
工具为了弥补这一缺点,采用预处理的方式,确保数据符合正确的格式,以便解密。比如,Url
算法正常加密的数据应当是一个% 符号加上两位十六进制数,然后再一个% 符号加上两位十六
进制数,如此反复。但实际应用中往往出现错漏,比如前面的% 符号缺失,中间出现0-F 以外
的字符,末尾的十六进制数重复等等。遇上这种情况,就需要通过预处理来找到正确的% 符号,
然后去除掉多余的字符。保证处理后的内容能正确被解密算法处理。同理,Hex 算法需要补全
0x 头并去除0-F 以外的字符,Base64 算法需要去除编码范围以外的符号并用= 补全。Acsii
算法需要去除数字和空格以外的字符,并且对过大的数字进行剔除,只保留前两三位。至于
MD5算法是单向加密,无法从加密后的内容反推回加密前的内容,所以只做了加密功能。至于
中文无法正常解密的问题,是因为部分加解密工具在设计时没有对中文做相应的特殊处理,导
致分开编码的中文内容没有被正确地合并识别。本工具对中文内容做了相应的处理,确保中文
内容能被正常识别。
四、实现智能解密
本工具设计了智能解密的创新功能,当用户点击智能解密时,首先识别加密数据是否有三
分之一是% 符号,如果是,那么识别为Url 加密;接着识别加密数据是否以0x 开头,并且十
六进制数占绝大多数,如果是,那么识别为Hex加密;再识别加密数据是否以= 符号结尾,并
且所有字符均在Base64 编码范围以内,如果是,那么识别为Base64 加密;然后识别加密数据
是否以数字和空格为主,如果是,那么识别为Acsii 加密;最后识别加密数据长度是否为32
位或16 位,并且所有字符均为十六进制数,如果是,那么识别为MD5加密。在完成识别后,
调用相应的解密算法,即可实现智能解密,如果加密数据与以上几种加密算法均不符合,那么
会提示不能确定该密码编码,请手动尝试。
结语:本文介绍了多功能加解密工具的开发过程,该工具与网络上同类型工具相比,具有
使用简单、容错能力强、中文兼容性好、能智能判断加密方式等优点。可以用于用于渗透测试、
弱口令排查、网页安全性检查、培训教学等多种场合,能有效提升工作效率。
版权声明:本文标题:基于常见加密算法的加解密工具设计 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1717492676a577106.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论