根据部分MD5数据解码原数据

发布时间 2023-04-14 11:41:48作者: b1ackstar

前情提要

今晚做了攻防世界里一道web题,和php语言密切相关。其中有个步骤,需要根据代码在hackbar里输入b的值,要求b的MD5编码后六位为“8b184b”,可大致估摸b范围是1到1000000以内,要求解b,则可以编写python代码。

import hashlib
for i in range(1000000):
    i=str(i)
    m = hashlib.md5(i.encode(encoding='UTF-8'))
    psw = m.hexdigest()
    if psw.endswith("8b184b"):
        print(i)

运行结果如下:

E:\python\python.exe "E:/PyCharm Community Edition/py文件/test1/web/解码MP5编码.py"
53724

Process finished with exit code 0

代码解读

1.python采用hashlib这个标准库实现MD5加密解密。
2.i.encode(encoding='UTF-8')处,i要为字符串,因此要先转换整数i为字符串,并且将其转化为UTF-8编码形式。
3.hexdigest()该方法是将hash中的数据转换成数据,其中只包含十六进制的数字。