import copy size = input("Matrix size: ") size = int(size) print() phrase = input("Chifer phrase (size = "+str(size*size)+"): ") print() keyV = input("Key (size= "+str(size)+"): ") print() print() emptyMatrix = [] for i in list(range(size)): emptyMatrix.append([]) for j in list(range(size)): emptyMatrix[i].append("-") matrix = copy.deepcopy(emptyMatrix) for i in list(range(size)): for j in list(range(size)): matrix[i][j]=phrase[size*j+i] keyOrdV = [] for i in list(range(size)): keyOrdV.append(ord(keyV[i])) newKeyOrdV = [] for i in list(range(size)): newKeyOrdV.append(keyOrdV.index(min(keyOrdV))) keyOrdV[newKeyOrdV[i]]=9999 finalMatrix = copy.deepcopy(emptyMatrix) for i in list(range(size)): j=0 for j in list(range(size)): k=newKeyOrdV[j] print(str(matrix)) finalMatrix[i][j] = matrix[i][k] print("MAGIC") print(str(matrix)) print() print() print("Debug info:") print(str(matrix)) print(str(newKeyOrdV)) print(str(finalMatrix)) print() finStr = "" for i in list(range(size)): for j in list(range(size)): finStr = finStr + finalMatrix[i][j] print("Cifered phrase: "+finStr)
2 abcd pi
Matrix size: Chifer phrase (size = 4): Key (size= 2): [['a', 'c'], ['b', 'd']] MAGIC [['a', 'c'], ['b', 'd']] [['a', 'c'], ['b', 'd']] MAGIC [['a', 'c'], ['b', 'd']] [['a', 'c'], ['b', 'd']] MAGIC [['a', 'c'], ['b', 'd']] [['a', 'c'], ['b', 'd']] MAGIC [['a', 'c'], ['b', 'd']] Debug info: [['a', 'c'], ['b', 'd']] [1, 0] [['c', 'a'], ['d', 'b']] Cifered phrase: cadb