CG-CTF | MD5

渣渣今天写了一题misc,第一次学习md5的python写法,赶紧记录一波


背景知识:

import hashlib

md51=hashlib.md5()
md52=hashlib.md5()
# 【用法】:
# hashlib.md5()
#   获取一个md5加密算法对象
# md5.update([要加密的二进制形式的字符串])
#   hashlib是对二进制进行加密的,如果直接对字符串加密的话, 会报错的
#   因此需要通过encode将字符串转码成二进制格式。
# md52.hexdigest()
#   获取加密后的16进制字符串
#
#写法1:
md51.update("123".encode('utf-8'))
print(md51.hexdigest())
#写法2:
md52.update(b"123")
print(md52.hexdigest())

解题代码py3:

#e9032???da???08????911513?0???a2
#TASC?O3RJMV?WDJKX?ZM
import hashlib
tag="e9032???da???08????911513?0???a2"
dir='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789*-+&^%$#@!()'

def Check(a):
    for i in range(0,len(tag)):
        if tag[i]=='?':
            continue
        elif tag[i]!=a[i]:
            return 0
    return 1
def Search():

    for i in dir:
        for j in dir:
            for k in dir:
                t='TASC'+i+'O3RJMV'+j+'WDJKX'+k+'ZM'
                md5 = hashlib.md5(t.encode("utf-8"))
                if(Check(md5.hexdigest())):
                    print("*"*80)
                    print("密文是:",t)
                    print("它的md5:",md5.hexdigest())
                    return 0
if __name__ == '__main__':
    Search()

 

猜你喜欢

转载自www.cnblogs.com/chrysanthemum/p/11982781.html