crypto12
题目:uozt{Zgyzhv_xlwv_uiln_xguhsld}
Atbash密码属于简单替换密码的特例
解密得flag{atbase_code_from_ctfshow}提交不对,首字母改大写,因为题目中首字母为大写
flag{Atbase_code_from_ctfshow} 提交正确
crypto13
题目附件名为base家族
字符太多了,复制不过来,在线解密也不太行,需要运用python
这题是需要有一定的python编码能力的,目前我还不够格,只能复制大佬的代码
import base64
with open('base.txt') as f:
text = f.read ()
while (1):
try:
text =base64.b64decode(text).decode()
except Exception as e:#except Exception as e:
try:
text =base64.b32decode(text).decode()
except Exception as e:
try:
text =base64.b16decode(text).decode()
except Exception as e:
break
print(text)
运行得到flag{b4Se_Fami1y_Is_FUn}
crypto14
题目:00110011 00110011 00100000 00110100 00110101 00100000 00110101 00110000 00100000 00110010 01100110 00100000 00110011 00110011 00100000 00110101 00110110 00100000 00110100 01100101 00100000 00110100 00110110 00100000 00110100 00110110 00100000 00110110 01100100 00100000 00110100 01100101 00100000 00110100 00110101 00100000 00110100 00110001 00100000 00110110 01100101 00100000 00110110 01100011 00100000 00110100 00111000 00100000 00110100 00110100 00100000 00110011 00110101 00100000 00110110 00110100 00100000 00110100 00110011 00100000 00110100 01100100 00100000 00110110 01100100 00100000 00110101 00110110 00100000 00110100 00111000 00100000 00110100 00110100 00100000 00110011 00110101 00100000 00110110 00110001 00100000 00110110 00110100 00100000 00110011 00111001 00100000 00110111 00110101 00100000 00110100 00110111 00100000 00110000 01100001
赛博厨师得到3EP/3VNFFmNEAnlHD5dCMmVHD5ad9uG(二进制转16进制再转acill码),因为出现了+和/,那么一定是base64,但普通的又解不了所以是base变种用python解,这里复制大佬的代码,这里测试是base64表偏移30不是acill码表,所以减30
s= '3EP/3VNFFmNEAnlHD5dCMmVHD5ad9uG'
s =str(s)
t = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
l=""
for i in s:
l += t[(t.index(i)-30)%64]
##如果不是4的倍数补上等号
if len(l)%4!=0:
l=l+"="*(4-(len(l)%4))
print(l)
import base64
flag = base64.b64decode(l).decode('utf-8')
print(flag)
得到flag{看我长不长?}
总结:后续应加强python的编写能力和对base64变种原理的理解