MD5加随机数算法的研究与应用
2019-09-13曾诗亮周琪云
◆曾诗亮 周琪云
MD5加随机数算法的研究与应用
◆曾诗亮 周琪云
(江西师范大学(南昌)计算机信息工程学院 江西 330022)
随着互联网的不断发展,MD5算法被广泛地应用在Web程序中用于加密。本文针对MD5算法可通过枚举法破解出原密码的缺陷,提出了一种改进的MD5算法,即MD5加随机数算法,并应用在Web程序中,经实验结果表明,MD5加随机数算法提高了用户数据的安全性。
MD5算法;MD5算法改进;Web程序
随着“互联网+”的迅速发展,网络安全变得越来越重要,特别是保护Web程序上用户数据的安全。文献[5]分析了MD5算法在用户口令认证中的安全隐患,给出了用户口令认证应用中如何提高MD5算法安全性的措施和方法。文献[6]基于MD5算法理论,用ASP对MD5算法在WEB程序中的安全应用进行了探讨。文献[7]介绍了MD5算法在身份鉴别中的应用,分析MD5算法的不足并提出了解决方法。怎样改进MD5算法,保障Web程序用户数据的安全,防止用户信息泄露,引起了人们的思考。
1 MD5加随机数算法
1.1 MD5算法是不安全的
MD5算法的密码和加密后的密文是一一对应的,黑客可以收集密文和对应的密码形成一张表。当获取了数据库的密文之后,通过枚举法匹配密文即可推出相应的密码。密文和密码对应的表如表1所示。
表1 密文和密码对应的表
1.2 MD5加随机数算法
比如每次密码123456经过MD5算法加密后都是e10adc3949ba59abbe56e057f20f883e,但是加上随机数,即123456 +随机数,MD5值不就不一样了。这个随机数也会保存在数据库中,不同的用户,随机数是不一样的。MD5加随机数算法流程图如图1所示。
图1 MD5加随机数算法流程图
2 MD5加随机数算法在Web程序中的应用
以Java web程序为例探讨MD5加随机数算法在Web程序中的应用,服务器端通过javaWeb的servlet处理来自网页的请求,网页是JSP页面。加密过程有以下四步:①获取前端页面传来的密码;②生成随机数;③选择MD5算法;④调用MD5加随机数算法生成加密后的密文,代码如图2所示。
用户登录时需要进行密码校验,所以生成的随机数和算法加密后的密文都要放在数据库中,如图3所示。
图2 MD5加随机数算法代码
图3 随机数和加密后的密文存放在数据库中
3 实验结果
3.1 MD5算法实验结果
通过在线MD5解密网站[8]进行实验。当直接使用MD5算法进行加密时,在1.1中图1的密文都可以解密出原密码,如图4所示。
图4 MD5算法解密出原密码
3.2 MD5加随机数算法实验结果
当使用MD5加随机数算法进行加密时,在线MD5解密网站无法解密出原密码,如图5所示。
4 结束语
本文提出了一种改进的MD5算法,即MD5加随机数算法,通过添加随机数,使用户数据即使在被黑客攻击获取的情况下,也无法通过密文破解出原密码。然后在Web程序中应用了MD5加随机数算法。最后通过MD5算法、MD5加随机数算法实验结果的对比,表明MD5加随机数算法增强了用户数据在网络中的安全性。
[1]李夏梦. IDEA子密钥扩展算法及其与MD5混合加密算法的研究[D].中北大学,2017.
[2]谭健.基于拟态计算机的全流水架构MD5算法及口令恢复研究[D].郑州大学,2017.
[3]李森.MD5算法的分析与研究[D].杭州电子科技大学,2017.
[4]史书源.基于MD5的电信运营商BSS系统安全性应用研究[D].辽宁工程技术大学,2016.
[5]刘洪民,印帮辉.MD5算法在用户口令认证中的应用[J].网络安全技术与用,2014(05):37+40.
[6]杨怀,宋俊芳,王聪华.浅谈MD5加密算法在网络安全中的应用[J].网络安全技术与应用,2018(09):40.
[7]吕喆.MD5身份鉴别及在线房屋交易系统的应用[J].网络安全技术与应用,2008(08):44-46.
[8]https://www.cMD5.com/.