buuctf-[WUSTCTF2020]level3个人收获

这道题破题点在于看到旁边的那个改表的函数。由于我很喜欢玩星际,所以我理所当然的没看到(草

 

 

 (明明特别明显

打开后很简单的改表。写这个博客是加强我对base64的理解

 

 

 由于我之前一直做的是未改表的题目,导致我知道流程,但不知道如何替换原来的表,于是又没做出来(菜

在网上搜索后,我知道如何改变的了(https://www.cnblogs.com/Mayfly-nymph/p/13085241.html)

 

 

 这里解释一下这串解密代码的含义(确实还是看了一会儿才看懂

table是原base64的表

s是换表后加密的结果

basebiao是为换表做铺垫,list是把“”里面的字符串变成一个个数组元素,便于等下交换

后面for里面的函数是简便的交换方法,小本本记下来(

basebiao=''.join(basebiao)是把basebiao从数组变成字符串

str.maketrans(x,y)是通过映射,x的相同位置的元素和y的相同位置的元素一一对应(x的长度等于y),用y的元素替代x的元素。

s.translate(table)是和str.maketrans相互联系的,把s中的basebiao里的元素换成相同位置的table里的数,从而得出flag

 

posted @ 2021-05-17 20:30  夏男人  阅读(177)  评论(0)    收藏  举报