打开题目,发现算法
呀,是个数学计算题,百度能够知道这是个仿射加密,和凯撒密码同样,属于“代换密码”。app
它的加密算法为: 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写出数学式子,因此只能手写啦)spa
而后,a的逆已经求出来了,那么咱们写个小小的脚本,把明文破译出来code
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=" ")
运行结果:blog
把答案 'sorcery' 用base64编码提交就好啦!!!(其实这道题能够直接经过在线网站解出来,不过,手动算一下,对于第一次接触的我仍是很开心啦)数学