현재 Python에서 2D 전치 암호로 작업 중입니다.목록 시작에 값 추가
['BF', 'AF', 'AF', 'DA', 'CD', 'DD', 'BC', 'EF', 'DA', 'AA', 'EF', 'BF']
다음 단계는 해당 목록을 가지고 그것을 분할하고, 사용자가 입력하는 키워드에 관련하여 새로운 매트릭스로를 가하고 : 그래서 다음과 같이 인코딩 된 메시지가 포함 된 목록을 가지고있다. 나는 아래가 어떤 :
Enter the keyword for final encryption: hide
H I D E
['B', 'F', 'A', 'F']
['A', 'F', 'D', 'A']
['C', 'D', 'D', 'D']
['B', 'C', 'E', 'F']
['D', 'A', 'A', 'A']
['E', 'F', 'B', 'F']
것은 내가 다음에 무엇을하고 싶은 때문에, 다른 암호문을 받고 아래와 같이 위의 각 열을 알파벳 순서대로 인쇄됩니다을하지 않은 무엇 :
나는 2 차원 매트릭스를 통과하고 아래 같은 모든 열 항목을 가지고def encodeFinalCipher():
matrix2 = []
# Convert keyword to upper case
keywordKey = list(keyword.upper())
# Convert firstEncryption to a string
firstEncryptionString = ''.join(str(x) for x in firstEncryption)
# Print the first table that will show the firstEncryption and the keyword above it
keywordList = list(firstEncryptionString)
for x in range(0,len(keywordList),len(keyword)):
matrix2.append(list(keywordList[x:x+len(keyword)]))
# Print the matrix to the screen
print (' %s' % ' '.join(map(str, keywordKey)))
for letters in matrix2:
print (letters)
return finalEncryption
: 여기
D E H I
['A', 'F', 'B', 'F']
['D', 'A', 'A', 'F']
['D', 'D', 'C', 'D']
['E', 'F', 'B', 'C']
['A', 'A', 'D', 'A']
['B', 'F', 'E', 'F']
내 코드입니다
b = [[matrix2[i][j] for i in range(len(matrix2))] for j in range(len(matrix2[0]))]
for index, item in enumerate (b):
print("\n",index, item)
OUTPUT:------
0 ['B', 'A', 'C', 'B', 'D', 'E']
1 ['F', 'F', 'D', 'C', 'A', 'F']
2 ['A', 'D', 'D', 'E', 'A', 'B']
3 ['F', 'A', 'D', 'F', 'A', 'F']
키워드 키의 각 문자를 어떻게 추가합니까 (예 : 'H' 'I'D ''E ') 숫자 0,1,2,3이있는 목록에?
아니면 더 효율적인 해결책 일 수 있습니다. 행렬을 만들 때 어떻게 keywordKey 열에 글자를 넣을 수 있습니까? 사전이 도움이 될까요? 그런 다음 사전을 정렬하고 최종 암호를 인쇄 할 수 있습니다.
많은 감사