【网络安全 | MD5截断比较】PHP、Python脚本利用
2023-12-26 06:21:20
前言
在解题中,当遇到类似
substr(md5(a),-6,6) == 7788
这样的MD5截断比较的题目时,只有求出a的值才能进行接下来的操作。
一个一个去猜是不可能的,通常使用脚本解决,文末给出实战案例。
PHP循环脚本
<?php
for($i=1;$i<999999;$i++)
if(preg_match("/^8b184b/",substr(md5($i),-6,6))){
echo $i;
}
?>
结果如下
Python多线程脚本
import concurrent.futures
import hashlib
#要进行比较的字符串
CompareString = '9331c'
def md5(text):
return hashlib.md5(str(text).encode('utf-8')).hexdigest()
def findCode(code):
start, end = map(int, code.split(':'))
for c in range(start, end):
if md5(c)[0:5] == CompareString: //0~5表示c经过加密后的前五个字符
print(c)
break
ranges = [f"{10000000*i}:{10000000*(i+1)}" for i in range(3)]
with concurrent.futures.ThreadPoolExecutor() as executor:
executor.map(findCode, ranges)
结果如下:
实战案例
文章来源:https://blog.csdn.net/2301_77485708/article/details/135202205
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!