MD5加密后16位与32位的区别 [ 详细 ]

文章目录

前言

MD5是HASH函数的一种,HASH函数又称杂凑函数,是在信息安全领域有广泛和重要应用的密码算法,它有一种类似于指纹的应用。在网络安全协议中,杂凑函数用来处理电子签名,将冗长的签名文件压缩为一段独特的数字信息,像指纹鉴别身份一样保证原来数字签名文件的合法性和安全性。


MD5加密算法说明

MD5是一个安全的散列算法,输入两个不同的明文不会得到相同的输出值。需要了解的是,根据其输出值,不能得到原始的明文,也就是说其过程是不可逆的。因此要解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD5算法散列之后,把得到的散列值和原始的数据形成一个一对一的映射表,通过比在表中比解密的MD5算法散列值,通过匹配从映射表中找出解密所对应的原始明 文。

MD516位和32位有何区别

MD5加密后的位数有两种类型:16位与32位,默认使用32位。16位实际上是从32位字符串中取中间的第9位到第24位的部分,用Java语言来说,即:

java 复制代码
String md5_16 = md5_32.substring(8, 24);
  • 为提高安全性,根据业务需求,可以对md5添加偏移量。如对原有字符拼接指定位数的字符串。它们有什么区别呢?

  • 16位加密就是从32位MD5散列中把中间16位提取出来,其实解16位MD5散列要比解32位MD5散列还慢,因为他多了一个步骤,就是使用32位加密后再把中间16位提取出来,然后再进行对比。

  • 而解32位的则不需要,加密后直接对比就可以了,MD5加密后的字符串又分为大写与小写两种。

  • 通过md5.cn站点对"admin"和"admin888"字符串进行测试,得出下列结果:

    "admin":

    16位加密:7a57a5a743894a0e

    32位加密:21232f297a57a5a743894a0e4a801fc3

关于MD5的一些常见问题

1、使用MD5对密码加密有什么用?

一个输入(密码明文)有唯一的一个输出(加密后的密文),但反过来,一个输出却对应无数个输入,所以,当你拿到一个输出时,不可能确定是哪个输入。也就是说,虽然你获取到了别人的密文,但是输入时要的是明文,你不可能通过密文反推明文,也就保证了安全。

2、为什么通过md5.cn在线加解密站还能解出明文呢?

其实道理很简单,虽然一个输出对应无数个输入,但平时我们接触到的输入并不是无限的。比如很多网站对密码有一些特殊要求:只能为6-20位的字母、数字等符号的组合。就这么一条平常的限制,就将无限种可能的输入缩小到有限种可能的输入了。既然是有限的,那就可以把这些所有可能的输入及其对应的输出全部列出来(散列表),这时,当然就可以通过输出反推输入了。

  • 且因为输出为32位,输入一般远低于32位,所以极有可能通过输出反推得到的输入是唯一的。

总结

如果此篇文章有帮助到您, 希望打大佬们能关注点赞收藏评论支持一波,非常感谢大家!

如果有不对的地方请指正!!!

参考

相关推荐
网络研究院5 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智5 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest5 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_5 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
2601_961845155 天前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博
程序猿阿伟5 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
InHand云飞小白5 天前
无人值守站点网络困境?工业级路由器IR315破解连接难题
网络·物联网·4g·工业路由器·4g路由器·iiot·蜂窝路由器
森G5 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
江华森5 天前
TCP/IP 协议栈实战 — 7 个实验详解
网络·tcp/ip·智能路由器
酉鬼女又兒5 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php