仿射变换的加密。
ch=['a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z']
m=""
a1,b=map(int,input("请输入两个密钥:").split())
a1=a1-int(a1/26)*26
b=b-int(b/26)*26
c=input("请输入明文:")
for i in c:
x=ch.index(i)
y=x*a1+b
m=m+ch[y]
print("密文为:",m)
仿射变换的解密。
def func(a1):
sum1=26
sum2=a1
x1=y2=1
x2=y1=0
while sum2!=1:
times=int(sum1/sum2)
z1=y1
z2=y2
z3=sum2
y1=x1-times*y1
y2=x2-times*y2
sum2=sum1-times*sum2
x1=z1
x2=z2
sum1=z3
return y2
ch=['a','b','c','d','e','f','g','h','i','j','k','l','m',
'n','o','p','q','r','s','t','u','v','w','x','y','z']
m=""
a1,b=map(int,input("请输入两个密钥:").split())
a1=a1-int(a1/26)*26
b=b-int(b/26)*26
c=input("请输入密文:")
for i in c:
x=ch.index(i)
a2=func(a1)
y=(x-b)*a2
m=m+ch[y]
print("明文为:",m)