1.MD5
解压压缩包之后我们将得到这样一串字符:e00cf25ad42683b3df678c61f42c6bda
将这串字符进行MD5解密,得到flag:flag{admin1}
2.url编码
得到字符:%66%6c%61%67%7b%61%6e%64%20%31%3d%31%7d
进行url解码:flag{and 1=1}
3.一眼就解密
得到字符:ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30=
很明显,一眼就能看出这是base64,也可以由尾部的“=”看出
解码得:flag{THE_FLAG_OF_THIS_STRING}
4.看我回旋踢
得到字符:synt{5pq1004q-86n5-46q8-o720-oro5on0417r1}
很明显,对应着flag{XXX}
synt对应flag
所以我们可以判断出这大概是移位密码中的凯撒密码,而s对应f,代表移位13位
解码得:flag{5cd1004d-86a5-46d8-b720-beb5ba0417e1}
5.摩丝
得到题目:.. .-.. --- ...- . -.-- --- ..-
一串摩斯密码,用空格分开
解码得:flag{ILOVEYOU}
6.password:
可以得到一个记事本,里面是这样的
这个时候我们主要注意这个题目的名称:password,一般指的是你账号密码中的密码
给了姓名生日,所以这个flag肯定跟姓名生日有关
得出flag:flag{zs19900315}
7.变异凯撒
得出信息点:与凯撒有关,意思是与移位有关。变异 = 不是直接凯撒
得到字符串:afZ_r9VYfScOeO_UL^RWUc
根据之前的题目猜测afZ_r与flag{对应
编写一段python代码来检查其中的对应关系
str1 = "flag{"str2 = "afZ_r"for i in range(0,5):a = ord(str1[i])-ord(str2[i])print(a )
答案显而易见
因此,我们只需要编写一段python代码,通过ASCII码的运算,来得到flag
def b_kaisa(mstr):j = 5i = 0lmstr = []for i in range(len(mstr)):m = ord(mstr[i])# 将密文的第i个字母变为其ascii码值m = m + j # ascii值+jlmstr.append(m) # 将递进后的ascii值存入列表lmstr[]i = i+1j = j+1return lmstrif __name__ == '__main__':m_str = 'afZ_r9VYfScOeO_UL^RWUc' # 密文lstr = []lstr = b_kaisa(m_str)print (lstr)
将ASCII码放入转换器,得到flag{Caesar_variation}
8.Quoted-printable
得到字符串:=E9=82=A3=E4=BD=A0=E4=B9=9F=E5=BE=88=E6=A3=92=E5=93=A6
解码得到flag{那你也很棒哦}
9.Rabbit
得到字符串:U2FsdGVkX1/+ydnDPowGbjjJXhZxm2MP2AgI
解得:flag{Cute_Rabbit}
10.篱笆墙的影子
得到字符串:felhaagv{ewtehtehfilnakgw}
篱笆→栅栏→栅栏密码
解得:flag{wethinkwehavetheflag}
11.RSA
通过了解RSA的加密过程,结合题目所给的信息p=473398607161,q=4511491,e=17
import gmpy2p = 473398607161q = 4511491e = 17d = gmpy2.invert(e,(p-1)*(q-1))print (d)
得出flag:flag{125631357777427553}
12.丢失的MD5
题目给了一段python程序,运行之后得到flag:flag{e9032994dabac08080091151380478a2}
鄙人刚刚入门,如有错失,请指正,感谢观看。
如果觉得《BUUCTF密码学部分前十二题(l1ght)》对你有帮助,请点赞、收藏,并留下你的观点哦!