zoukankan      html  css  js  c++  java
  • 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()

     

  • 相关阅读:
    而字歌
    排列组合的学习,基础入门,选修2-3
    金句集(目前9句)
    简析几何叉乘与安培力的内在逻辑
    浅谈参变分离的妙用
    日语
    Tarjan-SCC-NOIP2015message
    WebAPI身份验证
    简单记录在Visual Studio 2013中创建ASP.NET Web API 2
    从两个平方算法到分治算法-java
  • 原文地址:https://www.cnblogs.com/chrysanthemum/p/11982781.html
Copyright © 2011-2022 走看看