当前位置: 首页 > article >正文

MD5加密竟然不安全,应届生表示无法理解?

前言
 

近日公司的一个应届生问我,他做的一个毕业设计密码是MD5加密存储的,为什么密码我帮他调试的时候,我能猜出来明文是什么?

第六感,是后端研发的第六感!

正文


 

示例,有个系统,前端对密码做了加密:

 

 可以看到 password的值:

e10adc3949ba59abbe56e057f20f883e

这个账号的密码明文是 ,我猜猜, 如果没猜错是 123456 。

那如果是 :

91022ad929eaa50da47fb4d9e820b6cc

明文是: 556677

为什么我知道明文是什么?

这么神奇么?

MD5不是说不可逆么,为什么我知道。


答 :撞的。

什么意思, 就是撞库。
 

看,比如我有一张这样的表:
 

 

然后里面存着几十万条数据:


然后,拿到密文想知道明文就这样查一下(硬撞),这不就明文密码出来了么:
 

 

 

甚至,我们还可以无库硬撞,也就是 比如我看到这个网站的注册账号密码要求是6-8位密码,

然后知道是MD5,这时候我们就去写个MD5去硬撞(所以说密码复杂度很重要)。

 基本就是用库表存储去撞比较快, 其实这是很常见的。

甚至不止MD5, 比如SHA ,MD5+salt ,MD5(MD5) 很多简单的,都能给撞出来。

如果说做一个加解密的网站, 利用用户的输入的明文调用代码做加密,然后顺势保存在库表里面,然后解密的时候再利用上....

不止MD5,各种加密,各种加盐的存储....

不用再想如果了,事实上就已经很多网站这么做了:

 

 

所以说简单的MD5加密,要是泄露密文,你自己说安全不安全吧?

(如果非得是MD5,怎么提升安全度? 那就是密码的复杂度以及加salt,一定程度可以提高。)

ps:

彩虹表是一个用于加密散列函数逆运算的预先计算好的表, 为破解密码的散列值(或称哈希值、微缩图、摘要、指纹、哈希密文)而准备。一般主流的彩虹表都在100G以上。 这样的表常常用于恢复由有限集字符组成的固定长度的纯文本密码。这是空间/时间替换的典型实践, 比每一次尝试都计算哈希的暴力破解处理时间少而储存空间多,但却比简单的对每条输入散列翻查表的破解方式储存空间少而处理时间多。使用加salt的KDF函数可以使这种攻击难以实现。彩虹表是马丁·赫尔曼早期提出的简单算法的应用。


http://www.kler.cn/a/2845.html

相关文章:

  • npm list @types/node 命令用于列出当前项目中 @types/node 包及其依赖关系
  • 【C++】一种针对代码的连续条件检查方案,累计布尔结果
  • 深入理解BERT模型配置:BertConfig类详解
  • 如何用WordPress和Shopify提升SEO表现?
  • 2024 年 8 个最佳 API 设计工具图文介绍
  • 【测试框架篇】单元测试框架pytest(1):环境安装和配置
  • Java每日一练(20230324)
  • hive之视图
  • 手写一个Promise
  • maya python 中的maya.cmds 与maya.mel模块的区别笔记
  • 新闻文本分类任务:使用Transformer实现
  • A.机器学习入门算法(六)基于天气数据集的XGBoost分类预测
  • 用嘴写代码?继ChatGPT和NewBing之后,微软又开始整活了,Github Copilot X!
  • 【史上最全面esp32教程】oled显示篇
  • 第十四届蓝桥杯三月真题刷题训练——第 21 天
  • 【尝鲜版】ChatGPT插件开发指南
  • 二维图像处理到三维点云处理
  • 嵌入式系统 - 对话
  • LInux下安装libreoffice(用于Linux下Word转pdf,附代码)
  • 无需公网IP,远程连接SQL Server数据库【内网穿透】
  • 【Unityc#专题篇】之c#基础篇
  • ASO优化之应用商店中的A/B测试——改良版
  • 菜鸟刷题Day5
  • FPGA打砖块游戏设计(有上板照片)VHDL
  • React 入门(超详细)
  • 从零开始搭建游戏服务器 第一节 创建一个简单的服务器架构