Problem: [SWPUCTF 2021 新生赛]我的银行卡密码
[[toc]]
解题思路
首先暴力破解

解压后是一个文件
文件内容如下

看了一天也没看出来,是跟同学说他看出来是那个手机输入法的九键
我们一一对应手机上的输入法
得到字符串
YLOPJOGJVOCCYNMZYPGXGPOGJDVIGATBASH
也可以用代码
c = '93 53 63 71 51 63 41 51 83 63 23 23 93 62 61 94 93 71 41 92 41 71 63 41 51 31 83 43 41 21 81 22 21 74 42'
table = ['ABC','DEF','GHI','JKL','MNO','PQRS','TUV','WXYZ']
c = c.split(' ')
for i in range(len(c)):
print(table[int(c[i][0])-2][int(c[i][1])-1],end='')
根据翻译下一阶段的加密有最后的字母决定,因此这一个加密是 atbash,其实就是第一个T1后面对应的四个@
在解密时候删掉atbash
CTF在线工具-在线埃特巴什码加密|在线埃特巴什码解密|埃特巴什码算法|Atbash Cipher (hiencode.com)
得到:bolkqltqelxxbmnabktctkltqwert
再次解密qwert密码,这是T2,可以用网上脚本或者在线网址解密bolkqltqelxxbmnabktctklt
得到xisraseacsuuxzykxreverse
可以看到是reverse,这是T3,我们直接逆序xisraseacsuuxzykx就好
print('xisraseacsuuxzykx'[::-1])
得到:xkyzxuuscaesarsix 这时候看到T4,发现是有空格的,所以现在的解密是caesar six,也就是偏移为6的凯撒加密
得到:restroom
最后我直接写了,但是回来后发现还有reverse
所以再次逆序
得到flag: NSSCTF{moortser}
End
总结
题目很有趣而且让我了解到了很多加密方式的解密,同时也是第一次了解到利用手机九键加解密的题目,在了解过程中,也知道了有一些题会用26键加解密,继续努力学习!
