打開題目,發現

呀,是個數學計算題,百度可以知道這是個仿射加密,和凱撒密碼一樣,屬于“代換密碼”,
它的加密演算法為: c = E(p)=(a*p+b) mod m (其中p為明文,c為密文, 且a和m互質,m為字母的個數)
解密演算法為: p = D(c) = ((c-b)*(a的逆)) mod m (這里a的逆是指a在群空間m下的乘法逆元,可用擴展的歐幾里得演算法求出)
在這道題中,我們已知了加密演算法中的a和b,那么只要求出a的逆,這道題也就解出來啦!
手動解法如下:(擴展的歐幾里德演算法,我是在b站上看的,up主為圓號本昊,講的很詳細!還有我不會用word寫出數學式子,所以只能手寫啦)

然后,a的逆已經求出來了,那么我們寫個小小的腳本,把明文破譯出來
x= 19 text = 'welcylk' s=[] for i in text: m = ord(i)-97 s.append(m) print(s) for num in s: n = ((num-6)*x) % 26 print(chr(n+97),end=" ")
運行結果:

把答案 'sorcery' 用base64編碼提交就好啦!!!(其實這道題可以直接通過在線網站解出來,不過,手動算一下,對于第一次接觸的我還是很開心啦)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/6608.html
標籤:其他
上一篇:一文徹底搞懂Cookie、Session、Token到底是什么
下一篇:buuctf-SimpleRev
