zoukankan      html  css  js  c++  java
  • 攻防世界-进阶-1-re4-unvm-me

    re4-unvm-me

    解题思路

    import md5
    md5s = [
        0x831DAA3C843BA8B087C895F0ED305CE7L,
        0x6722F7A07246C6AF20662B855846C2C8L,
        0x5F04850FEC81A27AB5FC98BEFA4EB40CL,
        0xECF8DCAC7503E63A6A3667C5FB94F610L,
        0xC0FD15AE2C3931BC1E140523AE934722L,
        0x569F606FD6DA5D612F10CFB95C0BDE6DL,
        0x68CB5A1CF54C078BF0E7E89584C1A4EL,
        0xC11E2CD82D1F9FBD7E4D6EE9581FF3BDL,
        0x1DF4C637D625313720F45706A48FF20FL,
        0x3122EF3A001AAECDB8DD9D843C029E06L,
        0xADB778A0F729293E7E0B19B96A4C5A61L,
        0x938C747C6A051B3E163EB802A325148EL,
        0x38543C5E820DD9403B57BEFF6020596DL]
    print 'Can you turn me back to python ? ...'
    flag = raw_input('well as you wish.. what is the flag: ')
    if len(flag) > 69:
        print 'nice try'
        exit()
    if len(flag) % 5 != 0:
        print 'nice try'
        exit()
    for i in range(0, len(flag), 5):
        s = flag[i:i + 5]
        if int('0x' + md5.new(s).hexdigest(), 16) != md5s[i / 5]:
            print 'nice try'
            exit()
            continue
    print 'Congratz now you have the flag
    

    py知识

    字符串处理

    flag[i:i + 5]

    str='Runoob'
     
    print(str)                 # 输出字符串
    print(str[0:-1])           # 输出第一个到倒数第二个的所有字符
    print(str[0])              # 输出字符串第一个字符
    print(str[2:5])            # 输出从第三个开始到第五个的字符
    print(str[2:])             # 输出从第三个开始后的所有字符
    print(str * 2)             # 输出字符串两次
    print(str + '你好')        # 连接字符串
    print('------------------------------')
    print('hello
    runoob')      # 使用反斜杠()+n转义特殊字符
    print(r'hello
    runoob')     # 在字符串前面添加一个 r,表示原始字符串,不会发生转义
    

    输出结果为:

    Runoob
    Runoo
    R
    noo
    noob
    RunoobRunoob
    Runoob你好
    ------------------------------
    hello
    runoob
    hello
    runoob
    

    py摘要函数

    Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。
    hash.digest()
    返回摘要,作为二进制数据字符串值
    hash.hexdigest()
    返回摘要,作为十六进制数据字符串值

    import hashlib
    md5 = hashlib.md5()
    md5.update("a".encode('utf-8'))
    print(u"digest返回的摘要:%s"% md5.digest())
    print(u"hexdigest返回的摘要:%s"% md5.hexdigest())
    

    结果

    digest返回的摘要:b'x0cxc1uxb9xc0xf1xb6xa81xc3x99xe2iw&a'
    hexdigest返回的摘要:0cc175b9c0f1b6a831c399e26977266
    

    int()

    class int(x, base=10)
    参数
    x -- 字符串或数字。
    base -- 说明x是多少进制数,默认十进制。
    输出为十进制数

    >>>int()               # 不传入参数时,得到结果0
    0
    >>> int(3)
    3
    >>> int(3.6)
    3
    >>> int('12',16)        # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制
    18
    >>> int('0xa',16)  
    10  
    >>> int('10',8)  
    8
    

    解题

  • 相关阅读:
    玩聚的互联网热点新发现 精度上升到了一个新高度
    玩聚热点新发现中国的techmeme
    个性化阅读的过去和未来【中】
    【职经分享】走出公司进入产业建立圈子
    玩聚Alpha版本上线运行
    产品路径经营者当局者迷
    个性化阅读的过去和未来【上】
    Web2.0人性驱动的事业和仿生学
    获得硬盘上文件 文件夹
    电脑上QQ出现“该页面暂时无法显示”解决办法!
  • 原文地址:https://www.cnblogs.com/banpingcu/p/12663567.html
Copyright © 2011-2022 走看看