2021_SWPUCTF_Traditional
Tags:替换解码
0x01. 题目
西方的二进制数学的发明者莱布尼茨,从中国的八卦图当中受到启发,演绎并推论出了数学矩阵,最后创造的二进制数学。二进制数学的诞生为计算机的发明奠定了理论基础。而计算机现在改变了我们整个世界,改变了我们生活,而他的源头却是来自于八卦图。现在,给你一组由八卦图方位组成的密文,你能破解出其中的含义吗?
震坤艮 震艮震 坤巽坤 坤巽震 震巽兑 震艮震 震离艮 震离艮
格式:CTF{}
0x02. WP
按照八卦图的长短横对应进行二进制替换,最后进行解码
strListA = {"乾": "111", "兑": "110", "离": "101", "震": "100", "巽": "011", "坎": "010", "艮": "001", "坤": "000"}
strListB = {"乾": "111", "兑": "011", "离": "101", "震": "001", "巽": "110", "坎": "010", "艮": "100", "坤": "000"}
sCipher = "震坤艮 震艮震 坤巽坤 坤巽震 震巽兑 震艮震 震离艮 震离艮"
def decode(strList):
flag = ""
for t in (sCipher.split(" ")):
tFlag = ""
iBIN = ""
for c in t:
iBIN += strList[c]
flag += chr(int(iBIN, 2))
print(strList)
print(flag)
decode(strListA)
decode(strListB)
# 输出
# {'乾': '111', '兑': '110', '离': '101', '震': '100', '巽': '011', '坎': '010', '艮': '001', '坤': '000'}
# āČĞČĩĩ
# {'乾': '111', '兑': '011', '离': '101', '震': '001', '巽': '110', '坎': '010', '艮': '100', '坤': '000'}
# Da01sall