加密算法之MD5

本文介绍了MD5加密算法的基本原理及其应用场景,包括一致性检验、数字签名和安全访问认证等。探讨了MD5如何通过散列函数将任意长度的数据转换为固定长度的字符串,并讨论了其安全性及破解方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MD5加密算法

  加密的方式有两种,一种是客户端和服务器端整个通信信道进行保护加密,如HTTPS协议中的SSL,还有另一种加密是对通信数据本身进行加密,如MD5,接下来主要针对MD5进行研究。

       MD5加密就是信息摘要算法,是一种散列函数,可以将一个字符串,或文件,或压缩包,执行md5后,就可以生成一个固定长度为128bit的串。这个串,基本上是唯一的。

       所以,有人修改过压缩包后,就会生成新的串,这时就可以拿网站提供的串和新生成的串对比,如果不同,那就是被人修改过了。密码在前端进行加密,然后服务器使用摘要进行对比,这样在整个密码的校验过程中是在服务器端不知道明码的情况下进行的,极大的保障了密码的安全。

特点:

1、压缩性:任意长度的数据,算出MD5值长度都是一样的;

2、容易计算:从原数据计算出MD5值很容易;

3、抗修改性:对原数据进行任何修改,得到的MD5值都有很大区别;

4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(伪造数据)是非常难的。

作用:

1、一致性检验;

2、数字签名(指纹)

3、安全访问认证(注册)

4、在避免文件内容被篡改方面有重大作用,md5可以对字符串进行不可逆的加密,这使得可以生成一个128bit的大数,由于md5算法的原因,他与源文件相对应,即使在文件中做了很小的修改,那么生成的字符串也是差别巨大。

破解:

  在破解md5方面,最常用的方法是“跑字典”,有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。我们假设密码的最大长度为8位字节(8 Bytes),同时密码只能是字母和数字,共26+26+10=62个字节,排列组合出的字典的项数则是P62,1+P62,2)….+P62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘阵列,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。

使用md5加密算法实现登录

  实质上加密算法只是将注册时的密码通过MD5转化为更多位数,更复杂的字符串,经hash运算后进而将其存在数据库(文件系统)中,然后在用户登录时采用同样的方法加密,将用户输入的密码进行MD5 hash运算,再从数据库中取出数据,进行比对,从而实现登录操作。要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码的Hash值覆盖原来的Hash值就行了。

Visual Studio .NET VB编程语言 MD5(DES) 8密钥加密或解密文件function源代码 压缩包 : MD5 skey8加密(文件).zip 列表 MD5 skey8加密(文件)/ MD5 skey8加密(文件)/bin/ MD5 skey8加密(文件)/Form1.Designer.vb MD5 skey8加密(文件)/Form1.resx MD5 skey8加密(文件)/Form1.vb MD5 skey8加密(文件)/MD5 skey8加密(文件).vbproj MD5 skey8加密(文件)/MD5 skey8加密(文件).vbproj.user MD5 skey8加密(文件)/My Project/ MD5 skey8加密(文件)/My Project/Application.Designer.vb MD5 skey8加密(文件)/My Project/Application.myapp MD5 skey8加密(文件)/My Project/AssemblyInfo.vb MD5 skey8加密(文件)/My Project/Resources.Designer.vb MD5 skey8加密(文件)/My Project/Resources.resx MD5 skey8加密(文件)/My Project/Settings.Designer.vb MD5 skey8加密(文件)/My Project/Settings.settings MD5 skey8加密(文件)/obj/ MD5 skey8加密(文件)/obj/Debug/ MD5 skey8加密(文件)/obj/Debug/CoreCompileInputs.cache MD5 skey8加密(文件)/obj/Debug/DesignTimeResolveAssemblyReferences.cache MD5 skey8加密(文件)/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache MD5 skey8加密(文件)/obj/Debug/MD5 skey8加密(文件).exe MD5 skey8加密(文件)/obj/Debug/MD5 skey8加密(文件).pdb MD5 skey8加密(文件)/obj/Debug/MD5 skey8加密(文件).vbproj.FileListAbsolute.txt MD5 skey8加密(文件)/obj/Debug/MD5 skey8加密(文件).vbproj.GenerateResource.Cache MD5 skey8加密(文件)/obj/Debug/MD5 skey8加密(文件).vbprojResolveAssemblyReference.cache MD5 skey8加密(文件)/obj/Debug/MD5 skey8加密(文件).xml MD5 skey8加密(文件)/obj/Debug/TempPE/ MD5 skey8加密(文件)/obj/Debug/TempPE/My Project.Resources.Designer.vb.dll MD5 skey8加密(文件)/obj/Debug/WindowsApplication1.exe MD5 skey8加密(文件)/obj/Debug/WindowsApplication1.Form1.resources MD5 skey8加密(文件)/obj/Debug/WindowsApplication1.pdb MD5 skey8加密(文件)/obj/Debug/WindowsApplication1.Resources.resources MD5 skey8加密(文件)/obj/Debug/WindowsApplication1.vbproj.FileListAbsolute.txt MD5 skey8加密(文件)/obj/Debug/WindowsApplication1.vbproj.GenerateResource.Cache MD5 skey8加密(文件)/obj/Debug/WindowsApplication1.xml MD5 skey8加密(文件)/obj/Release/ MD5 skey8加密(文件).sln MD5 skey8加密(文件).v11.suo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值