攻防世界WP-crypto-ISCC-2017-告诉你个秘密

附件是一个txt文档,里面的内容是
636A56355279427363446C4A49454A7154534230526D6843 56445A31614342354E326C4B4946467A5769426961453067
一看是十六进制,先转成ASCII码

a = [0x63,0x6A,0x56,0x35,0x52,0x79,0x42,0x73,0x63,0x44,0x6C,0x4A,0x49,0x45,0x4A,0x71,0x54,0x53,0x42,0x30,0x52,0x6D,0x68,0x43,0x56,0x44,0x5A,0x31,0x61,0x43,0x42,0x35,0x4E,0x32,0x6C,0x4B,0x49,0x46,0x46,0x7A,0x57,0x69,0x42,0x69,0x61,0x45,0x30,0x67]
str_temp=""
for i in range(len(a)):
	str_temp+=chr(a[i])

结果是cjV5RyBscDlJIEJqTSB0RmhCVDZ1aCB5N2lKIFFzWiBiaE0g,长度为48,为4的倍数,看样子像base64加密。我们试着base64解密。

str_result = base64.b64decode(str_temp)
str_result = str(str_result,'utf8')//转换一下,不然有b的前缀
print(str_result)

结果为r5yG lp9I BjM tFhBT6uh y7iJ QsZ bhM
网上说这是什么键盘密码,拿第一组字符举例,找到r5yG在键盘上的位置,被圈起来的字符为t,以此类推。
最后的flag为TONGYUAN

另外,网上还有另一种键盘密码,密码表是手机上的全键盘。

letter = {
    'q': 'a', 'w': 'b', 'e': 'c', 'r': 'd', 't': 'e', 'y': 'f', 'u': 'g',
    'i': 'h', 'o': 'i', 'p': 'j', 'a': 'k', 's': 'l', 'd': 'm', 'f': 'n',
    'g': 'o', 'h': 'p', 'j': 'q', 'k': 'r', 'l': 's', 'z': 't',
    'x': 'u', 'c': 'v', 'v': 'w', 'b': 'x', 'n': 'y', 'm': 'z',
    'Q': 'A', 'W': 'B', 'E': 'C', 'R': 'D', 'T': 'E', 'Y': 'F', 'U': 'G',
    'I': 'H', 'O': 'I', 'P': 'J', 'A': 'K', 'S': 'L', 'D': 'M', 'F': 'N',
    'G': 'O', 'H': 'P', 'J': 'Q', 'K': 'R', 'L': 'S', 'Z': 'T',
    'X': 'U', 'C': 'V', 'V': 'W', 'B': 'X', 'N': 'Y', 'M': 'Z',
}
flag=""
for i in range(len(str_result)):
	print(letter.get(str_result[i]))

就是根据索引表找字符。

你可能感兴趣的:(ctf,crypto)