加密函数:f(x) = ax + b (mod m)
解码函数:f(x) = a^(-1)(x - b)(mod m)
求乘法逆元的公式:a*a^(-1)(mod m) = 1
字母含义及加密条件:
解决仿射加密的首要前提就是理解好上面的三个重要公式,以及什么是互质,什么是乘法逆元,请认真阅读仿射加密
并认真思考范例部分
当你真的理解加密原理后,写出加密解密的python代码就容易多了:
下面上代码:
s= 'szzyfimhyzd' #密文
i=1
while(17*i % 26 != 1):
i+=1 #求乘法逆元,即i
#用到两个重要函数chr(),ord()
for x in range(len(s)):
b=23*(ord(s[x])-ord('a')+8)%26 #得到明文对应的数(范围0 - 25)
print(chr(b+ord('a')),end='') #将ASCLL码转换为字符并输出