jxb撰写本文的目的,在于总结一次编写Python程序及其延申学习的过程,主要涉及:
思路:进行10次循环,每层循环在0,1,2中随机选择1个数字作为列表list中的序号,列表的每个元素是一个进行base16、base32或者base64编码的匿名函数,编码结果作为下一层编码的输入。
from base64 import *
import random
flag = "flag{**jxb**}".encode("utf-8")
#使用encode("utf-8"),是把str型转为bytes型,base64等编码时需要二进制数据
list = [lambda x:b16encode(x),lambda x:b32encode(x),lambda x:b64encode(x)]
for i in range(10):
choice = random.choice([0,1,2])
flag =list[choice](flag)
with open('encoded.txt','w') as fp:
fp.write(flag.decode("utf-8"))
使用字典实现上述功能的对应改动:
encode={
'16':lambda x:b16encode(x),
'32':lambda x:b32encode(x),
'64':lambda x:b64encode(x)
} #列表实现中的list
choice = random.choice(['16','32','64'])
flag =encode[choice](flag)
from base64 import *
flag1 =