密码学实验
我只是为了记录自己写过的代码,所以代码质量不高非常冗余
一、Playfire加密
b=['A','B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
c=[["","","","",""],["","","","",""],["","","","",""],["","","","",""],["","","","",""]]
#密钥去重
def _key(key):
global a
a=[]
key=key.upper()
for i in key:
if i not in a and i!=" ":
a.append(i)
print(a)
#密钥入阵、字母入阵
def Matrix():
x=y=0
for i in range(5):
j=0
while(j<5):
if x<len(a):
c[i][j]=a[x]
x+=1
j+=1
continue
else:
if b[y] not in a and y<len(b):
c[i][j]=b[y]
y+=1
j+=1
continue
else:
y+=1
j-=1
j+=1
print(c)
return c
#明文处理
def E_text(text):
for i in range(len(text)):
if(i%2==1):
if text[i]==text[i-1]:
text.insert(i,'Z')
if len(text)%2!=0:
text+='Z'
#print(text)
return text
#密文处理
def D_text(str2):
str3=""
for i in str2:
if i=='Z':
continue
str3+=i
return str3
#不在同一行同一列
def _index(text,n):
for i in range(5):
for j in range(5):
if text[n]==c[i][j]:
return i,j
#加密
def