一种基于md5的加密方法及系统的制作方法

文档序号:8365232阅读:452来源:国知局
一种基于md5的加密方法及系统的制作方法
【技术领域】
[0001]本发明涉及数据加密领域,尤其涉及一种基于MD5的加密方法及系统。
【背景技术】
[0002]随着网络通信技术的不断发展,信息安全越来越重要。于数据信息传输时,为了保证安全性,通常会采用加密算法对数据信息进行加密处理。但是,现有的标准开源加密算法由于算法机制完全透明,算法资料全面,很容易被暴力破解。

【发明内容】

[0003]本发明提供一种基于MD5的加密方法及系统,能够解决由于现有技术中标准开源算法容易被恶意破解而造成信息安全性不高的问题。
[0004]为了解决上述技术问题,本发明提供一种基于MD5的加密方法,包括以下步骤:获取原始待加密数据,添加动态数据;根据预定的动态加密规则对添加动态数据的原始待加密数据进行加密运算,得到第一加密数据,其中,所述动态加密规则包括加密算法、加密次数及加密算法执行顺序;根据调整后的链接变量对所述第一加密数据进行MD5运算,得到第二加密数据;将动态信息加入所述第二加密数据得到第三加密数据,将所述第三加密数据转换为可见字符,得到加密结果,其中,所述动态信息包括动态数据的信息、动态加密规则的信息以及所述调整后的链接变量的信息。
[0005]进一步地,所述动态数据由随机函数生成。
[0006]进一步地,所述第三加密数据包括所述动态信息在所述第三加密数据中的位置信息。
[0007]进一步地,所述动态加密规则的加密算法包括以下一种算法或其任意组合:AES算法、SHAl算法、RipeMD算法、Tiger算法、WhirlPool算法。
[0008]本发明还提供一种基于MD5的加密系统,包括:数据获取模块、第一加密模块、第二加密模块以及第三加密模块。所述数据获取模块,用于获取原始待加密数据,添加动态数据;所述第一加密模块,用于根据预定的动态加密规则对添加动态数据的原始待加密数据进行加密运算,得到第一加密数据,其中,所述动态加密规则包括加密算法、加密次数及加密算法执行顺序;所述第二加密模块,用于根据调整后的链接变量对所述第一加密数据进行MD5运算,得到第二加密数据;所述第三加密模块,用于将动态信息加入所述第二加密数据得到第三加密数据,将所述第三加密数据转换为可见字符,得到加密结果,其中,所述动态信息包括动态数据的信息、动态加密规则的信息以及所述调整后的链接变量的信息。
[0009]进一步地,所述动态数据由随机函数生成。
[0010]进一步地,所述第三加密数据包括所述动态信息在所述第三加密数据中的位置信息。
[0011]进一步地,所述动态加密规则的加密算法包括以下一种算法或其任意组合:AES算法、SHAl算法、RipeMD算法、Tiger算法、WhirlPool算法。
[0012]本发明提供的基于MD5的加密方法及系统,采用了多种加密算法混合,加密次数动态计算,动态信息分散在加密串各位置,能够解决现有技术中标准开源算法容易被破解的问题,可以满足高安全性要求的业务需求。
【附图说明】
[0013]图1所示为本发明较佳实施例提供的基于MD5的加密方法的流程图;
[0014]图2所示为本发明较佳实施例提供的基于MD5的加密系统的示意图。
【具体实施方式】
[0015]如图1所示,本发明较佳实施例提供的基于MD5的加密方法包括以下步骤:步骤S1:获取原始待加密数据,添加动态数据;步骤S2:根据预定的动态加密规则对添加动态数据的原始待加密数据进行加密运算,得到第一加密数据,其中,所述动态加密规则包括加密算法、加密次数及加密算法执行顺序;步骤S3:根据调整后的链接变量对所述第一加密数据进行MD5运算,得到第二加密数据;步骤S4:将动态信息加入所述第二加密数据得到第三加密数据,将所述第三加密数据转换为可见字符,得到加密结果,其中,所述动态信息包括动态数据的信息、动态加密规则的信息以及所述调整后的链接变量的信息。
[0016]于较佳实施例中,动态数据由随机函数生成。
[0017]于较佳实施例中,第三加密数据包括动态信息在第三加密数据中的位置信息。
[0018]于较佳实施例中,动态加密规则的加密算法包括以下一种算法或其任意组合:AES算法、SHAl算法、RipeMD算法、Tiger算法、WhirlPool算法。
[0019]接下来对本发明较佳实施例的流程进行详细描述。
[0020]举例而言,当本实施例的加密方法应用于手机游戏支付业务时,步骤SI获取的原始待加密数据例如为用户输入的需要加密的支付信息。同时,添加动态数据至原始待加密数据。其中,动态数据由随机函数生成,并具有指定格式,例如100?300之间的数字、30位的字节数组或规定每个字节为O?120的字节数组。
[0021]步骤S2中的动态加密规则为预定义的。举例而言,加密算法例如为AES算法和SHAl算法;加密次数例如为AES算法运算I次,SHAl算法运算2次;加密算法执行顺序例如为先进行AES算法运算,再进行SHAl算法运算。其中,可预先定义多种动态加密规则,于使用时,通过随机函数确定相应的动态加密规则。
[0022]在步骤S3中,对第一加密数据进行的MD5运算为非公MD5运算。即,以调整后的链接变量进行MD5运算。具体而言,标准的MD5运算有四个32位被称作链接变量(ChainingVariable)的整数参数,他们从小到大依次为:A = 0x01234567,B = 0x89abcdef, C =0xfedcba98,D = 0x76543210。改变这四个链接变量的值进行运算,可使得运算结果与标准算法的结果不同。但是,若随意修改链接变量,容易出现不同字符串加密结果碰撞增加的情况(即,不同字符串的加密结果相同)。因此,于本实施例中,链接变量的修改值经过大数据碰撞测试得到,即将不同的链接变量修改值基于大规模的数据进行加密结果检测,根据加密结果的碰撞情况确定该链接变量修改值是否合适。于此,将经过大数据碰撞测试的链接变量修改值放入链接变量集合,于使用时,根据所需的范围区间,动态地从链接变量集合中取出合适的调整后的链接变量进行MD5运算。
[0023]在步骤S4中,将动态信息加入由步骤S3的MD5运算得到的第二加密数据中。其中,经过MD5运算得到的第二加密数据为128位散列值。具体而言,通过随机函数生成动态信息的位置信息,动态信息根据位置信息分布在整个MD5的128位散列的各个位置,使其扩展到152?168位,例如可以伪装成SHAl运算结果的160位数。或
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1