图 a
图 b
根据上述加密算法编写解密程序。程序在启动时读取密钥矩阵存入列表a中,根据程序提示,输入 密文,然后显示明文。运行界面如下图 c所示。
图 c
def getmm(x,n):
col = (x-1) % n
row = (x-1) //n
getmm = a[col*n+row]
if row % 2 == 1:
getmm =
return getmm n = 3
#存储密文数据,偶数位存储加密值,奇数位存储该数据在原文中的位置
#生成规模为 n*n 的密钥矩阵存入列表 a 中
mw=[]
a=[]
for i in range(n*n):
a.append(i+1)
p=input("请输入密文:") #2,1,6,2,10,3,12,4,10,5, t=0
k=0
for i in range(len(p)):
c=p[i]
if c!=",":
t=t*10+int(c)
else:
mw.append(t)
t=0 print("原文为:",end="")
yw=[]
for i in range(k//2): #对密文解密,结果存入列表 yw 中
yw.append(mw[2*i]-getmm(mw[2*i+1],n))
s=""
for i in range(k//2):
s=s+ #转换为字母输出
print(s)