fork download
  1. import copy
  2.  
  3. size = input("Matrix size: ")
  4. size = int(size)
  5. print()
  6. phrase = input("Chifer phrase (size = "+str(size*size)+"): ")
  7. print()
  8. keyV = input("Key (size= "+str(size)+"): ")
  9. print()
  10. print()
  11.  
  12. emptyMatrix = []
  13. for i in list(range(size)):
  14. emptyMatrix.append([])
  15. for j in list(range(size)):
  16. emptyMatrix[i].append("-")
  17.  
  18. matrix = copy.deepcopy(emptyMatrix)
  19.  
  20. for i in list(range(size)):
  21. for j in list(range(size)):
  22. matrix[i][j]=phrase[size*j+i]
  23.  
  24. keyOrdV = []
  25. for i in list(range(size)):
  26. keyOrdV.append(ord(keyV[i]))
  27.  
  28. newKeyOrdV = []
  29. for i in list(range(size)):
  30. newKeyOrdV.append(keyOrdV.index(min(keyOrdV)))
  31. keyOrdV[newKeyOrdV[i]]=9999
  32.  
  33. finalMatrix = copy.deepcopy(emptyMatrix)
  34.  
  35. for i in list(range(size)):
  36. j=0
  37. for j in list(range(size)):
  38. k=newKeyOrdV[j]
  39. print(str(matrix))
  40. finalMatrix[i][j] = matrix[i][k]
  41. print("MAGIC")
  42. print(str(matrix))
  43. print()
  44.  
  45. print()
  46. print("Debug info:")
  47. print(str(matrix))
  48. print(str(newKeyOrdV))
  49. print(str(finalMatrix))
  50. print()
  51.  
  52. finStr = ""
  53. for i in list(range(size)):
  54. for j in list(range(size)):
  55. finStr = finStr + finalMatrix[i][j]
  56.  
  57. print("Cifered phrase: "+finStr)
  58.  
Success #stdin #stdout 0.03s 9696KB
stdin
2
abcd
pi
stdout
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