加密方法是将flag的base64编码转换成大写。

解密方法正好相反。

code:

#!/usr/bin/env python
# encoding: utf-8
import base64
import hashlib
import itertools


def check(src):
    m1 = hashlib.md5()
    m1.update(src)
    if m1.hexdigest() == '16478a151bdd41335dcd69b270f6b985':
        return True
    else:
        return False

#generate和change是产生所有的需要检验的字符串list
def generate(word):
    n = len(word)
    tuple = [()]
    result = []
    for i in range(n):
        tuple.extend(list(itertools.combinations(range(n),i+1)))
    for i in tuple:
        result.append(change(word,i))
    return result


def change(word,tuple):
    b = list(word)
    result = []
    for i in range(len(b)):
        if b[i].isalpha():
            if i in tuple:
                result.append(word[i].lower())
            else:
                result.append(word[i])
        else:
            result.append(word[i])
    return ''.join(result)


def decrypt(word):
    for i in generate(word):
        if check(base64.b64decode(i)):
            return i
        else:
            print 'not '+ i

if __name__ == '__main__':
    word = 'YMFZZTY0D3RMD3RMMTIZ'
    result = decrypt(word)
    print 'flag is '+ base64.b64decode(result)

Flag:

温馨提示: 此处内容需要评论本文后刷新才能查看,支付2元即可直接查看所有Flag。

小广告:关于获取西普实验吧所有Writeup请点击这里查看索引

查看所有Flag需要付费,需要获取所有Flag的童鞋请访问这里成为付费用户,可以自助把自己的注册邮箱加入网站白名单,即可免回复看到本站所有Flag

Flag大全地址:所有Flag

PS:本站不是实验吧的官方站点,纯粹是个人博客,收取Flag费用仅是维持服务器费用,做站不易,且行窃珍惜,如果喜欢我的博客,愿意捐赠的,可以扫描下面的二维码

微信二维码:
支付宝二维码: