本发明涉及数据加密技术领域,特别涉及一种基于base64的加密传输算法。
背景技术:
在要求加密传输的场合中,某些应用场合(如浏览器)中不能使用的二进制数据,因此,需要使用base64编码三个字节的二进制数据转换为4个字节的字符数据,即可以公共base64编码把二进制数据转换为字符数据。des是常用的数据加密算法,为了实现一码一密的传输,就需要在传输的数据中包括传输密钥,传输密钥一般连续存放,这样在数据格式泄漏的情况下,有可能会提取出传输密钥,使得加密体系出现漏洞。
技术实现要素:
本发明的目的旨在至少解决所述技术缺陷之一。
为此,本发明的目的在于提出一种基于base64的加密传输算法,通过散列算法将传输密钥插入到传输的二进制信息中,由于传输密钥被分散存放,增加了破解难度,使得保密程度增强。
为了实现上述目的,本发明的实施例提供一种基于base64的加密传输算法,包括以下步骤:
步骤s1,获取待加密信息中包括字符串在内的二进制信息;
步骤s2,随机生成密钥随机数,通过密钥随机数对主密钥进行des运算生成传输密钥;
步骤s3,随机生成索引随机数作为上述二进制信息的密钥存储索引位置,在这个二进制信息的密钥存储索引位置处分散插入传输密钥;
步骤s4,采用上述索引随机数对二进制信息使用des算法进行加密,获得加密密文;
步骤s5,在传输时,使用base64编码对加密密文进行编码,生成传输密文,并发出给接收端;
步骤s6,接收端对接收到的数据进行base64解码,得到加密密文;并通过des解密获得索引随机数,按照索引随机数指定的密钥存储索引位置取得传输密钥,然后将传输密钥与主密钥进行des解密运算取得密钥随机数,用密钥随机数对二进制信息采用des算法进行解密,得到明文。
在上述任一方案中优选的是,在步骤s3中,如果二进制信息的长度短于索引随机数所指代的密钥存储索引位置,则在二进制信息中用0填充后续的部分。
在上述任一方案中优选的是,在步骤s2中,生成的密钥随机数的数量为多个,生成的索引随机数的数量也为多个,每个密钥随机数对主密钥进行des运算生成相对应的传输密钥插入到其中一个索引随机数所指代的密钥存储索引位置处。
在上述任一方案中优选的是,密钥随机数的数量与索引随机数的数量相同,并且一一对应,密钥随机数对主密钥进行des运算生成相对应的传输密钥插入到与该密钥随机数对应的索引随机数所指代的密钥存储索引位置处。
在上述任一方案中优选的是,在步骤s2中,生成的密钥随机数的数量为多个,生成的索引随机数的数量为1个,每个密钥随机数对主密钥进行des运算生成相对应的传输密钥按顺序依次插入到同一索引随机数所指代的密钥存储索引位置处。
在上述任一方案中优选的是,在步骤s2中,生成的密钥随机数的数量为1个,生成的索引随机数的数量为多个,将密钥随机数对主密钥进行des运算生成相对应的传输密钥进行分割,然后按顺序依次插入到多个索引随机数所指代的密钥存储索引位置处。
在上述任一方案中优选的是,在步骤s5中,使用base64编码对加密密文进行编码时,加密密文中3字节8位数据拆分为4字节6位数据,无法补足的以0填充。
在上述任一方案中优选的是,在步骤s6中,接收端对接收到的数据进行base64解码时,把4字节6位数据转化为3字节8位二进制数据,得到加密密文。
本发明提出了用des加密结合base64编码的算法,编码中包括了传输密钥,并使得传输密钥散列于二进制数据中,最终在发送端进行base64编码得到传输字符串。接收端进行base64解码,并提取传输密钥,经过des解密获得明文数据,由于传输密钥被分散存放,增加了破解难度,使得保密程度增强。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明的结构图;
图2为本发明的二进制信息和传输密钥的生成过程图;
具体实施方式
下面详细描述本发明的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
des全称叫(dataencryptionstandard),是1977年美国联邦信息处理标准(fips)中所采用的一种对称加密算法。在数据传输中为了保证数据不被意外泄漏,经常采用一些数据加密算法,如des,3des等数据加密技术。一些基于浏览器的程序中,只能处理字符类型的数据,不能处理二进制数据,base64编码解决了这个问题。
本发明提供一种基于base64的加密传输算法,如图1-2所示,包括以下步骤:
步骤s1,获取待加密信息中包括字符串在内的二进制信息;
步骤s2,随机生成密钥随机数,通过密钥随机数对主密钥进行des运算生成传输密钥;
步骤s3,随机生成索引随机数作为上述二进制信息的密钥存储索引位置,在这个二进制信息的密钥存储索引位置处分散插入传输密钥;二进制信息和传输密钥的生成过程如图2所示.
如果二进制信息的长度短于索引随机数所指代的密钥存储索引位置,则在二进制信息中用0填充后续的部分。
插入传输密钥时可以有以下几种情况:
1)生成的密钥随机数的数量为多个,生成的索引随机数的数量也为多个,每个密钥随机数对主密钥进行des运算生成相对应的传输密钥插入到其中一个索引随机数所指代的密钥存储索引位置处。
2)密钥随机数的数量与索引随机数的数量相同,并且一一对应,密钥随机数对主密钥进行des运算生成相对应的传输密钥插入到与该密钥随机数对应的索引随机数所指代的密钥存储索引位置处。
3)生成的密钥随机数的数量为多个,生成的索引随机数的数量为1个,每个密钥随机数对主密钥进行des运算生成相对应的传输密钥按顺序依次插入到同一索引随机数所指代的密钥存储索引位置处。
4)生成的密钥随机数的数量为1个,生成的索引随机数的数量为多个,将密钥随机数对主密钥进行des运算生成相对应的传输密钥进行分割,然后按顺序依次插入到多个索引随机数所指代的密钥存储索引位置处。
步骤s4,采用上述索引随机数对二进制信息使用des算法进行加密,获得加密密文;
步骤s5,在传输时,使用base64编码对加密密文进行编码(加密密文中3字节8位数据拆分为4字节6位数据,无法补足的以0填充),生成传输密文,并发出给接收端;
步骤s6,接收端对接收到的数据进行base64解码(把4字节6位数据转化为3字节8位二进制数据),得到加密密文;并通过des解密获得索引随机数,按照索引随机数指定的密钥存储索引位置取得传输密钥,然后将传输密钥与主密钥进行des解密运算取得密钥随机数,用密钥随机数对二进制信息采用des算法进行解密,得到明文。
本发明提出了用des加密结合base64编码的算法,编码中包括了传输密钥,并使得传输密钥散列于二进制数据中,最终在发送端进行base64编码得到传输字符串。接收端进行base64解码,并提取传输密钥,经过des解密获得明文数据,由于传输密钥被分散存放,增加了破解难度,使得保密程度增强。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。