一种伪32位MD5加密算法设计与实现_安企神电脑终端安全管理监控软件
安企神电脑监控软件 在线试用
扫码咨询客服
安企神电脑监控软件、局域网监控软件
首页
功能对比
下载中心
购买咨询
客户列表
关于安企神

一种伪32位MD5加密算法设计与实现

更新时间:2022-10-28 15:44:16


本文简介:随着高校数字化校园进程的推进,校园网也是部署各类应用系统的基础平台,无论是校园内网还是Web服务器,网络的安全时刻受到威胁。比如网络钓鱼、SQl注入及主页篡改等黑客常见攻击,为此,校园网的后台登陆安全是一个十分严峻的问题,结合学院网站建设实际,反复测试,我们总结出了一种伪32位的MD5加密算法,对登陆的用户名和密码进行有效加密防御,在很大程度上解决了从网站后台登陆进行Sql注入的可能。一、MD5加

一种伪32位MD5加密算法设计与实现

随着高校数字化校园进程的推进,校园网也是部署各类应用系统的基础平台,无论是校园内网还是Web服务器,网络的安全时刻受到威胁。比如网络钓鱼、SQl注入及主页篡改等黑客常见攻击,为此,校园网的后台登陆安全是一个十分严峻的问题,结合学院网站建设实际,反复测试,我们总结出了一种伪32位的MD5加密算法,对登陆的用户名和密码进行有效加密防御,在很大程度上解决了从网站后台登陆进行Sql注入的可能。

一、MD5加密算法简介

MD5即Message-DigestAlgorithm5(信息——摘要算法5),是一种用于产生数字签名的单项散列加密算法,在1991年由MITLaboratoryforComputerSci2ence(IT计算机科学实验室)和RSADataSecurityInc(RSA数据安全公司)的RonaldL.Rivest教授开发出来,经由MD2、MD3和MD4发展而来。MD5加密算法的使用不需要支付任何版权费用。它的作用是让大容量信息在用数字签名软件签私人密匙前被“压缩”成一种保密的格式(将一个任意长度的“字节串”通过一个不可逆的字符串变换算法变换成一个128bit的大整数,换句话说就是,即使你看到源程序和加密算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数)。

MD5广泛用于加密和解密技术上。例如在UNIX系统中用户的密码就是以MD5(或其它类似算法)经加密后存储在文件系统中。当用户登录时,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。

二、伪32位MD5加密算法设计

MD5加密算法设计原理是将两个16位的真实MD5码值,通过握手方法组合起来形成新的32位的密文,加密过程如图1所示。

一种伪32位MD5加密算法设计与实现

其中Zlm()表示加密方法,其功能就是将制作者的握手方法实现,从而实现数据文件加密。这种加密算法实现了同一个密码,随机生成不同密文的过程。举例说明:假如密码明文为“admin”,两次点击鼠标产生的密文却相差甚远。这个过程在VisualBasic6.0下测试运行,如图2所示。

一种伪32位加密算法设计与实现

从图1中不难看出此算法核心是握手方法,即如何将真的16位密文和随机生成的16位密文组合,形成伪32位密文。而握手方法的制定就是开发者自己,所以从很大程度上提高了算法的想象空间和灵活性。

其解密算法Zlj(),当然是逆运算过程,如图3所示。对方只要知道握手原理(即加密算法)即可实现。而对于不明白握手方法的入侵者来说,按照32位MD5的破解程序运行的结果也就是伪明文了。

一种伪32位MD5加密算法设计与实现

最后这两个方法Zlm()和Zlj()在VB环境下利用ActiveXDll技术进行封装,编译成为通用组件MD32.dll,使加密算法源码得到了保护,结合握手方法,安全性得到了最大保障。

三、伪32位MD5加密算法测试

1、 应用测试

每一个应用系统都有密码修改模块,在校园网站后台进行登陆测试成功后,我们对密码修改模块做了重点测试,流程如图4所示。

一种伪32位MD5加密算法设计与实现
应用表明,该伪码加密算法的通用组件MD32.dll,调用方便,功能强大,代码的执行效率高,安全性好,无论是源代码反查还是反编译DLL文件均无法破解我们的握手原理。

附密码修改源码如下:

<%d

imM

setM=server.CreateObject("MD32.MD5")’建立MD32对象

iftrim(request("newpwd"))<>""then

ifsession("isadmin")="1"then

sql="select3fromtbadminwhereadminid="&request.cookies("adminid")

else

sql="select3fromtbuserwhereuserid="&request.cookies("userid")

endif

setrs=server.createobject("adodb.recordset")rs.opensql,conn,3,2

ifM.zlj(rs("pwd"))<>M.MD5(trim(request("oldpwd")))then解密后的密文和加密的MD5密文比较

response.redirect"editpwd.asp?error=wrong"

else

rs("pwd")=M.zlm(M.MD5(trim(request("newpwd"))))’32位伪码生成

rs.update

response.redirect"editpwd.asp?error=ok"

endif

endif

%>

2、破解测试

目前通用的MD5在线查询和破解的网站很多。这些网站都可以在线查询和解密MD5加密算法。

下面我们就拿admin做测试用例,admin的32位MD5密文是21232f297a57a5a743894a0e4a801fc3,利用伪码算法随即产生一个伪32位的MD5密文,677ad5273a75bae744d3a83904aac0ee。将其破解结果如图5和图6所示。

一种伪32位MD5加密算法设计与实现

从结果看出,由于采用了伪码加密算法,很多常规破解的网站,在线破解的结果基本都是“NotFound”,短时间内猜不出加密明文。真正意义上实现了对数据库数据的保护。另外,伪码加密算法的思想为我们今后的安全设计提供了一种解决方案。

小知识之伪码

伪码即PDL,这是一个笼统的名称,它是用正文形式表示数据和处理过程的设计工具。

立即下载试用

信任牵是什么意思

信任牵是一种情感关系,伴随着人类进化而来的。很多人认为信任只是一种简单的认同感和信任感,而实际上它是复杂的、深层次的、互动性的,它能够对人们的内心产生长久的影响,深刻地影响人们的生活、工作、学习等方面。在社会生活中,信任关系是社会交往的基石,是构成人际关系的核心要素。

信任牵是一种基于信任的联系。信任是个极其复杂的现象,包括了心态、态度、信念、价值观、经验等因素。这些因素构成了人们对他人的认知,因此决定了能不能建立起信任。当人们之间有了信任,就会建立起信任关系。信任关系具有相互性和亲密性,所以也称之为信任牵。

信任关系的建立需要时间和积累。在人际关系中,信任关系往往是互相建立的,建立信任需要彼此之间的沟通、交流、理解和支持。在生活中,人与人之间的信任关系有着不同的表现形式,如父母与子女之间的信任关系、夫妻之间的信任关系、朋友之间的信任关系等等。

在家庭中,父母与子女之间的信任关系是最为重要的。家庭是一个包容、关爱和信任的地方,家庭中的信任关系对于孩子的成长是至关重要的。父母通过亲密的关系和支持,给予孩子信任和安全感,能够帮助孩子建立对自己的信心和自尊心,使孩子在成长中能够充满力量。

在职场中,信任关系对于工作成果的产生和个人成长都起着重要作用。上司和员工之间的信任关系可以促进工作效率和减少潜在的矛盾,让工作环境更加舒适和愉悦。同时,在职场中,员工之间建立起良好的信任关系可以减少矛盾和竞争,让整个团队更加协作和有成效。

在社会生活中,朋友之间的信任关系也是非常重要的。朋友之间的信任关系建立在互相了解和支持的基础之上,决定了他们之间能否共享生活的欢乐和悲伤,也决定了他们能否互相扶持、互相帮助。

维护和发展信任关系是人际交往中的基本要素。需要用诚信、信任、宽容和包容等人性美德去维护和发展信任关系。同时,也要注意避免偏见、误解、怀疑和敌意等因素的干扰,保持积极、开放、诚恳的表现,建立正向的互动,增进相互理解和信任。

信任关系是人类社会中最为基本的关系之一,能够帮助人们建立起良好的人际交往和互动。在信任关系中,人们能够获得内心的支持和真挚的帮助,让他们更加充实和满足。同时,在信任关系中,人们也能够发挥自己的能力和潜力,实现自己的价值和追求,让整个社会更加和谐和美好。

本文为收集整理,文章部分观点不代表本站观点,如有侵权或其它问题请反馈客服。/cjwt/16325.html

~article_body_code~