MD5 相同的情况叫做“碰撞”,现在网络中已经出现了两个相同的 MD5 可执行文件,所以MD5现在已经被弃用了,发生碰撞的概率是1/(2^128)。

SHA-1 也会发生碰撞,但是几率比 MD5 小的多。

2004年,我国中科院院士王小云证实md5算法无法防止碰撞,因此,不适用于安全性认证。在2005年,王小云院士提出了md5哈希碰撞,公式如下

f(f(s, M), M') = f(f(s, N), N')

因为她的研究成果表明了给定消息 M1,能够计算获取 M2,使得 M2 产生的散列值与 M1 产生的散列值相同,即:

MD5(M1)=MD5(M2)

于是MD5不满足抗碰撞性,于是不再是安全的散列算法

例:

字符串1

4d c9 68 ff 0e e3 5c 20 95 72 d4 77 7b 72 15 87

  d3 6f a7 b2 1b dc 56 b7 4a 3d c0 78 3e 7b 95 18

  af bf a2 00 a8 28 4b f3 6e 8e 4b 55 b3 5f 42 75

  93 d8 49 67 6d a0 d1 55 5d 83 60 fb 5f 07 fe a2

字符串2

4d c9 68 ff 0e e3 5c 20 95 72 d4 77 7b 72 15 87

  d3 6f a7 b2 1b dc 56 b7 4a 3d c0 78 3e 7b 95 18

  af bf a2 02 a8 28 4b f3 6e 8e 4b 55 b3 5f 42 75

  93 d8 49 67 6d a0 d1 d5 5d 83 60 fb 5f 07 fe a2

上方两个字符串的 MD5 值完全相同。

常见MD5碰撞

md5值为0e开头

0e830400451993494058024219903391
s878926199a
0e545993274517709034328855841020
s155964671a
0e342768416822451524974117254469
s214587387a
0e848240448830537924465865611904
s214587387a
0e848240448830537924465865611904
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s1885207154a
0e509367213418206700842008763514
s1502113478a
0e861580163291561247404381396064
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s155964671a
0e342768416822451524974117254469
s1184209335a
0e072485820392773389523109082030
s1665632922a
0e731198061491163073197128363787
s1502113478a
0e861580163291561247404381396064
s1836677006a
0e481036490867661113260034900752
s1091221200a
0e940624217856561557816327384675
s155964671a
0e342768416822451524974117254469
s1502113478a
0e861580163291561247404381396064
s155964671a
0e342768416822451524974117254469
s1665632922a
0e731198061491163073197128363787
s155964671a
0e342768416822451524974117254469
s1091221200a
0e940624217856561557816327384675
s1836677006a
0e481036490867661113260034900752
s1885207154a
0e509367213418206700842008763514
s532378020a
0e220463095855511507588041205815
s878926199a
0e545993274517709034328855841020
s1091221200a
0e940624217856561557816327384675
s214587387a
0e848240448830537924465865611904
s1502113478a
0e861580163291561247404381396064
s1091221200a
0e940624217856561557816327384675
s1665632922a
0e731198061491163073197128363787
s1885207154a
0e509367213418206700842008763514
s1836677006a
0e481036490867661113260034900752
s1665632922a
0e731198061491163073197128363787
s878926199a
0e545993274517709034328855841020

例题:buuctf  还原大师

代码

import hashlib
k = 'TASC?O3RJMV?WDJKX?ZM'                    #要还原的明文
for i in range(26):temp1 = k.replace('?',str(chr(65+i)),1)for j in range(26):temp2 = temp1.replace('?',chr(65+j),1)for n in range(26):temp3 = temp2.replace('?',chr(65+n),1)s = hashlib.md5(temp3.encode('utf8')).hexdigest().upper()#注意大小写if s[:4] == 'E903':    #检查元素print ('flag{' + s + '}')       #输出密文

MD5撞库

md5在理论上是几乎无法破解的,但是可以撞库。

撞库的前提,固定的字符串其对应的MD5值是一定的

撞库攻击也就是黑客通过收集互联网已泄露的用户+密码信息,生成对应的字典表,尝试批量登陆其他网站后,得到一系列可以登陆的用户,这样一旦用户为了省事,在多个网站设置了同样的用户名和密码的话,黑客很容易就会通过字典中已有的信息,登录到这些网站,从而获得用户的相关信息,如:手机号码、身份证号码、家庭住址,支付宝及网银信息等。这些信息泄露后,不仅会给用户和精神和经济带来巨大损失,同时也会给相关网站带来负面影响。
————————————————
版权声明:本文为CSDN博主「法海老方丈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44437000/article/details/97677657

常见的撞库方法:

原文链接:常见的三种撞库方法_网易数帆社区博客-CSDN博客_撞库https://blog.csdn.net/wangyiyungw/article/details/84584163



异性相吸

异性相吸,会想到要进行异或操作,所以,要将这两个文件转化成二进制才能能进行异或

将这两个文件拖入16进制编辑器中,转换成二进制,

得到二进制数据之后进行异或操作就可以

a='0000011100011111000000000000001100001000000001000001001001010101000000110001000001010100010110000100101101011100010110000100101001010110010100110100010001010010000000110100010000000010010110000100011000000110010101000100011100000101010101100100011101010111010001000001001001011101010010100001010000011011'
b='0110000101110011011000010110010001110011011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011000010111001101100100011100010111011101100101011100110111000101100110'
c=''
for i in range(len(a)):if(a[i]==b[i]):c+='0'else:c+='1'
print(c)

结果是

0110011001101100011000010110011101111011011001010110000100110001011000100110001100110000001110010011100000111000001110010011100100110010001100100011011100110110011000100011011101100110001110010011010101100010001101010011010001100001001101110011010000110011001101010110010100111000001110010110010101111101

然后再将其转化成字符串

用16进制编辑器新建一个文本文件,复制二进制数据,粘贴到(从二进制文本粘贴),即可得到flag

flag{ea1bc0988992276b7f95b54a7435e89e}

RSAROLL

在date文件中,有好几组数据,第一个花括号中有两个数,第一个数比较长,猜测应该是n,后面较小应该是e,用在线分解网址,将n分解成p和q

然后将下面所有的数据都当成密文,解出明文

import gmpy2N, p, q, e = 920139713, 18443, 49891, 19
d = gmpy2.invert(e, (p - 1) * (q - 1))
result = []
with open("C:\\Users\\惠普\\Desktop\\buuctf   29题\\RsaRoll\\data.txt", "r") as f:for line in f.readlines():line = line.strip('\n')  # 去掉列表中每一个元素的换行符result.append(chr(pow(int(line), d, N)))
flag = ''
for i in result:flag += i
print(flag)
print(result)

RSA

( 这两个文件打不开)

MD5碰撞与撞库和题相关推荐

  1. 深入浅出了解撞库攻击!

    1. 撞库的原理和危害 "撞库"(Credential Stuffing Attack)在网络安全中是一个古老的概念,按中文的字面意思解读,就是"碰撞数据库"的 ...

  2. 撞库:2017年的大麻烦

    本文讲的是 撞库:2017年的大麻烦,每拥有100万的失窃凭证,黑客们可以使用Sentry MBA等类似工具大规模入侵目标网站上的账户.而根据Shape Security发布的2017凭证泄露报告,2 ...

  3. 撞库攻击:一场需要用户参与的持久战

    一,背景: 用户数据泄露一直是如今互联网世界的一个焦点,从最近的京东撞库抹黑事件,到之前的CSDN,如家用户数据的泄露,服务商和黑客之间在用户数据这个舞台上一直在进行着旷日持久的攻防战. 对于大多数用 ...

  4. 使用python hashlib模块给明文字符串加密,以及如何撞库破解密码

    文章目录: 1 hashlib介绍 2 hashlib模块使用 2.1 查看hashlib中有哪些hash算法 2.2 对字符串进行加密 2.3 对于数据比较大,加密可以分块,结果一样 2.4 has ...

  5. Question | 网站被黑客扫描撞库该怎么应对防范?

    本文来自网易云社区 在安全领域向来是先知道如何攻,其次才是防.针对题主的问题,在介绍如何防范网站被黑客扫描撞库之前,先简单介绍一下什么是撞库. 撞库是黑客通过收集互联网已泄露的用户和密码信息,生成对于 ...

  6. 撞库***:一场需要用户参与的持久战

    一,背景: 用户数据泄露一直是如今互联网世界的一个焦点,从最近的京东撞库抹黑事件,到之前的CSDN,如家用户数据的泄露,服务商和***之间在用户数据这个舞台上一直在进行着旷日持久的***战. 对于大多 ...

  7. Hash的简介与hashlib模块的使用、模拟撞库与密码加盐

    什么是Hash呢? hash(哈希)是一类算法(如md5),hash算法又称为散列表(hash table),也叫做哈希表,该算法接受传入的内容,经过运算得到一串hash值(字符串) hash值的特点 ...

  8. HCIP H12-221 题库 71-120题 讲解

    HCIP H12-221 题库 71-120题 讲解 71.Agreate命令(aggregateipy4-address{mask|mask-length}[as-set|attribute-pol ...

  9. 猿人学题库第一题——无混淆js加密

    猿人学题库第一题--无混淆js加密 1.  首先 进入 浏览器的开发者工具, 进入后直接 查看请求,可以找到 一个 json?page=1&count=14 的网址,查看response 就是 ...

最新文章

  1. 网络推广——企业新站还得是专业网络推广公司来维护!
  2. 简历中该怎么写自己了解html,我用HTML写简历
  3. AR:Unity与iOS交互(入门篇)
  4. 中文乱码之myEclipse项目导入时中文乱码(待)
  5. 深入浅出Python——Python高级语法之文件操作
  6. python word 公式转png图片处理方式
  7. 苹果开发者账号添加受信任电话号
  8. ES 索引mapping之keyword;term查询添加keyword查询;更改mapping keyword类型
  9. [最新] Android 代码规范大全(Android开发速看)
  10. 车牌号正则校验(新能源)
  11. 我和计算机专业的故事
  12. python实现Apriori算法
  13. 美通社企业新闻汇总 | 2019.1.9 | 直销巨头雅芳出售广州工厂,美团合作海外公司发展无人配送...
  14. k8s探针检测php,K8s探针
  15. IDEA创建Maven工程Servlet
  16. java+js实现展示本地文件夹下的所有图片demo
  17. 面向对象重写理解 求值策略 -共享对象调用 面向对象原则
  18. 【Android】更改程序图标
  19. java计算机毕业设计物联网实验课程考勤网站源码+lw文档+系统+数据库
  20. leetcode 买卖股票系列题目总结

热门文章

  1. vscode当前工作区不受信任,因此已禁用此扩展
  2. 开封广告推广方式有哪几种?如何去操作?怎么做有效果?
  3. 软件测试工程师前景怎样?这3大好处没人能拒绝!
  4. Linux设备驱动程序工作原理
  5. 如何布局私域社群营销?做好这两点就够了
  6. python列表去除none_从Python列表中删除None
  7. 十张图了解2020年中国智能音箱行业市场规模与发展前景分析 行业发展潜力巨大
  8. 良好棉花是如何认证的?标准内容是什么?
  9. python观察者模式observe
  10. dSploitzANTI渗透教程之修改MAC地址与Wifi监听器