本发明涉及数据安全领域,尤其涉及一种基于Base64的加解密方法及其装置。
背景技术:
Base64是一种较为常见的数据编码方式,可以把非ASCII字符的数据转换成ASCII字符,其编码速度快在很多场合需要用到,如传递证书、电子邮件数据、Http数据传输等。Base64编码由于具备不可读性,应用于数据安全领域的加解密;但由于其编码原理对外公开,解码工具很常见,所以实际数据安全应用中,通常只用Base64进行编码,再配合以其它加解密手段,如DES、AES等,很少单独用它进行加解密,在传输时很容易被截获。
技术实现要素:
为了克服现有技术的不足,本发明的目的在于提供一种基于Base64的加解密方法及其装置,其能使Base64编解码的安全性提高。
本发明提供了一种基于Base64的加密方法,具体包括:
获取待加密的明文信息;
将明文信息进行Base64编码生成编码字符串;
随机生成一个3-63之间的第一数值m1;
从Base64字符映射表中获取与第一数值对应的第一字符;
从Base64字符映射表随机获取m1个字符,并组成第一字符串;
将第一字符串添加到编码字符串的前面,将第一字符添加到编码字符串后面,生成最终的加密字符串。
本发明提供了一种基于Base64的加密方法,具体包括:
获取待加密的明文信息;将明文信息进行Base64编码生成编码字符串;
随机生成两个3-63之间的随机数值:第一数值m1和第二数值m2;
从Base64字符映射表中获取与第一数值对应的第一字符,以及获取与第二数值对应的第二字符;
从Base64字符映射表随机获取m1个字符,并组成第一字符串;以及随机获取m2个字符,并组成第二字符串;
将第一字符串添加到编码字符串的前面,将第二字符串添加到编码字符串的后面,以及将第一字符和第二字符依次添加到第二字符串的后面,生成最终的加密字符串。采用两个随机数值,以及生成两个字符串分别添加到编码字符串的前后,可以使加密方法的安全性更高。
本发明提供了一种基于Base64的解密方法,具体包括:
获取加密字符串,并获取加密字符串的最后一位的字符d1;
根据Base64字符映射表,获取和字符d1对应的数值n1;
将加密字符串的前n1位以及最后一位删除,得到编码字符串;
对编码字符串进行Base64解码得到明文信息。
本发明提供了一种基于Base64的解密方法,具体包括:
获取加密字符串,并获取加密字符串的最后两位的字符d1和d2;
根据Base64字符映射表,分别获取与字符d1和字符d2对应的数值n1和n2;
将加密字符串的前n1位删除,以及将加密字符串的后n2+2位删除,得到编码字符串;
对编码字符串进行Base64解码得到明文信息。
本发明提供了一种基于Base64的加密装置,具体包括:
编码模块,用于获取待加密的明文信息;将明文信息进行Base64编码生成编码字符串;
第一随机模块,用于随机生成一个3-63之间的第一数值m1;
第一生成模块,用于从Base64字符映射表中获取与第一数值对应的第一字符;
第二随机模块,用于从Base64字符映射表随机获取m1个字符,并组成第一字符串;
第二生成模块,用于将第一字符串添加到编码字符串的前面,将第一字符添加到编码字符串后面,生成最终的加密字符串。
本发明提供了一种基于Base64的加密装置,具体包括:
编码模块,用于获取待加密的明文信息;将明文信息进行Base64编码生成编码字符串;
第一随机模块,用于随机生成两个3-63之间的随机数值:第一数值m1和第二数值m2;
第一生成模块,用于从Base64字符映射表中获取与第一数值对应的第一字符,以及获取与第二数值对应的第二字符;
第二随机模块,用于从Base64字符映射表随机获取m1个字符,并组成第一字符串;以及随机获取m2个字符,并组成第二字符串;
第二生成模块,用于将第一字符串添加到编码字符串的前面,将第二字符串添加到编码字符串的后面,以及将第一字符和第二字符依次添加到第二字符串的后面,生成最终的加密字符串。
本发明提供了一种基于Base64的解密装置,具体包括:
第一获取模块,用于获取加密字符串,并获取加密字符串的最后一位的字符d1;
第二获取模块,用于根据Base64字符映射表,获取和字符d1对应的数值n1;
删除模块,用于将加密字符串的前n1位以及最后一位删除,得到编码字符串;
解码模块,用于对编码字符串进行Base64解码得到明文信息。
本发明提供了一种基于Base64的解密装置,具体包括:
第一获取模块,用于获取加密字符串,并获取加密字符串的最后两位的字符d1和d2;
第二获取模块,用于根据Base64字符映射表,分别获取字符d1和字符d2的数值n1和n2;
删除模块,用于将加密字符串的前n1位删除,以及将加密字符串的后n2+2位删除,得到编码字符串;
解码模块,用于对编码字符串进行Base64解码得到明文信息。
相比现有技术,本发明的有益效果在于:基于Base64编码的技术上进一步对明文信息进行加密,无法使用其它解密算法破解,安全性较高。
附图说明
图1为本发明的基于Base64的加密方法的流程图;
图2为本发明的基于Base64的加密装置的模块连接图;
图3为本发明的基于Base64的解密方法的流程图;
图4为本发明的基于Base64的解密方法的模块连接图。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述:
一种基于Base64的加密方法,其实施例一:
如图1所示,包括如下步骤:
步骤01、获取待加密的明文信息,将明文信息进行Base64编码生成编码字符串A。
步骤02、随机生成两个3-63之间的随机数值:第一数值m1和第二数值m2。
步骤03、从Base64字符映射表中获取与m1对应的第一字符c1,以及获取与m2对应的第二字符c2;Base64字符映射表如表1所示。
表1、Base64字符映射表
步骤04、从Base64字符映射表随机获取m1个字符,并组成第一字符串str1;以及从Base64字符映射表随机获取m2个字符,并编码字符串第二字符串str2。
步骤05、将第一字符串str1添加到编码字符串的前面,将第二字符串str2添加到编码字符串的后面,以及将c1和c2依次添加到第二字符串str2的后面,生成最终的加密字符串B,加密字符串B包括:str1+A+str2+c1+c2。
例如,明文信息为“柿子”进行Base64编码生成的编码字符串A为“5p+/5a2Q”;
随机生成的第一数值m1为7,从Base64字符映射表中与7对应的第一字符c1为H。随机生成的第二数值m2为4;则从Base64字符映射表中与4对应的第二字符c2为E;
从Base64字符映射表随机获取m1个字符分别为“S”、“h”、“i”、“n”、“g”、“0”和“2”,组成第一字符串str1为“Shing02”;从Base64字符映射表随机获取m2个字符分别为“S”、“x”、“y”和“+”,组成的第二字符串str2为“Sxy+”;
故最终的字符串B为“Shing025p+/5a2QSxy+HE”。
一种基于Base64的加密装置,如图2所示,包括:
编码模块,用于获取待加密的明文信息,将明文信息进行Base64编码生成编码字符串A;
第一随机模块,用于随机生成两个3-63之间的随机数值:第一数值m1和第二数值m2。
第一生成模块,用于从Base64字符映射表中获取与m1对应的第一字符c1,以及获取与m2对应的第二字符c2;
第二随机模块,用于从Base64字符映射表随机获取m1个字符,并组成第一字符串str1;以及从Base64字符映射表随机获取m2个字符,并编码字符串第二字符串str2。
第二生成模块,用于将第一字符串str1添加到编码字符串的前面,将第二字符串str2添加到编码字符串的后面,以及将c1和c2添加到编码字符串的后面,生成最终的加密字符串B,加密字符串B包括:str1+A+str2+c1+c2。
一种基于Base64的解密方法,如图3所示,包括如下步骤:
步骤11、获取加密字符串B,并获取B的最后两位的字符d1和d2;
步骤12、根据Base64字符映射表,分别获取与字符d1和字符d2对应的数值n1和n2;
步骤13、将加密字符串B的前n1位删除,以及将B的后n2+2位删除;获取编码字符串A;
步骤14、对编码字符串A进行Base64解码得到明文信息。
例如,获取加密字符串B“Shing025p+/5a2QSxy+HE”,获取B的最后两位的字符d1和d2分别为“H”和“E”;根据Base64字符映射表,分别获取字符“H”和字符“E”的数值n1和n2分别为7和4。故将加密字符串B“Shing025p+/5a2QSxy+HE”的前7位“Shing02”删除,以及后6位“Sxy+HE”删除,得到编码字符串A为“5p+/5a2Q”;对编码字符串A“5p+/5a2Q”进行Base64解码得到明文信息为“柿子”。
一种基于Base64的解密装置,如图4所示,包括:
第一获取模块,用于获取加密字符串B,并获取B的最后两位的字符d1和d2。
第二获取模块,用于根据Base64字符映射表,分别获取字符d1和字符d2的数值n1和n2。
删除模块,用于将加密字符串B的前n1位删除,以及将B的后n2+2位删除;获取编码字符串A。
解码模块,用于对编码字符串A进行Base64解码得到明文信息。
实施例二:
一种基于Base64的加密方法,包括如下步骤:
步骤21、获取待加密的明文信息;将明文信息进行Base64编码生成编码字符串A;
步骤22、随机生成一个3-63之间的第一数值m1;
步骤23、从Base64字符映射表中获取与第一数值m1对应的第一字符c1;
步骤24、从Base64字符映射表随机获取m1个字符,并组成第一字符串str1;
步骤25、将第一字符串str1添加到编码字符串A的前面,将第一字符添加到编码字符串A后面,生成最终的加密字符串B。
一种基于Base64的加密装置,具体包括:
编码模块,用于获取待加密的明文信息;将明文信息进行Base64编码生成编码字符串;
第一随机模块,用于随机生成一个3-63之间的第一数值m1;
第一生成模块,用于从Base64字符映射表中获取与第一数值对应的第一字符;
第二随机模块,用于从Base64字符映射表随机获取m1个字符,并组成第一字符串;
第二生成模块,用于将第一字符串添加到编码字符串的前面,将第一字符添加到编码字符串后面,生成最终的加密字符串。
一种基于Base64的解密方法,具体包括如下步骤:
步骤31、获取加密字符串B,并获取加密字符串B的最后一位的字符d1;
步骤32、根据Base64字符映射表,获取和字符d1对应的数值n1;步骤33、将加密字符串的前n1位删除,得到编码字符串;
步骤34、对编码字符串进行Base64解码得到明文信息。
一种基于Base64的解密装置,具体包括:
第一获取模块,用于获取加密字符串,并获取加密字符串的最后一位的字符d1;
第二获取模块,用于根据Base64字符映射表,获取和字符d1对应的数值n1;
删除模块,用于将加密字符串的前n1位删除,得到编码字符串;
解码模块,用于对编码字符串进行Base64解码得到明文信息。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。