萌新賽密碼學_簽到題
Ao(mgHXE)AN2PSBOu3qI0o
開頭的Ao(mg就是flag base85編碼後的結果
直接在線https://www.qtool.net/baseencode得到flag
萌新賽密碼學_抱我
分析源碼可以發現就是
大循環299次每次隨機從[0,36]之間選個數字
再從cssting取出對應位置的字符添加到密文中
接着進入小循環10次
隨機從[0, len(key) - 1]選個數字
再從key取出對應位置的字符添加到密文中
一次大循環得到11位的密文,其中第一個都是密鑰,是要提取仍掉的
直接上代碼
def decode(cipher):
deCipher = ''
for i in range(1,len(cipher),11):
deCipher+=cipher[i:i+10]
return deCipher
print(decode(cipher))
就可以得到亂序的flag,詞頻統計一下(在線http://www.aihanyu.org/cncorpus/CpsTongji.aspx)
拋開flag{}就只剩36d了
flag直接就出來了
萌新賽密碼_媽呀,完了
2進制轉爲字符串
#二進制轉字符串
int_ ="01000100010100110111100100110011010010100111100101001011011101100101000001000011010100000110110101001000001101000101011101000011011110100010101101010100011010000101011101101001001100100100011001100111010010110110111100111001011001010101001101010000010101010011010001100101001101010110011100101011011010100101101001010101001100110100011001110010010101110100111001110110010011000100110100110101001101010110101101000101011001100011000101101000010001010110110101001110011100100111010100101011010011100100010100110011"
str_= ",".join([str(int(int_[i:i+8],2)) for i in range(0,len(int_),8)])
print(str_)
得到
DSy3JyKvPCPmH4WCz+ThWi2FgKo9eSPU4e5g+jZU3FrWNvLM55kEf1hEmNru+NE3
分析一下是64位
emm這時候就需要去羣裏拿小本本記錄大佬們的發言
最後36D羣主說了密鑰爲20121221
也解釋可媽呀,完了的意思,
圖是用來讓我們向瑪雅這邊想出這密鑰的
有密文和密鑰,而且有+號那麼就是非對稱那邊猜了
最後AES在線解密出得
解密網站:http://tool.chacuo.net/cryptaes(不知道偏移量所以加密模式選擇ECB,還有字符集需要選擇爲utf8)