【发布时间】:2015-03-04 03:59:58
【问题描述】:
使用 Playfair 密码。我有两组字符:一个关键字和没有关键字中字符的字母表的其余部分。示例(由于 Playfair 密码的性质,使用 25 个字符时不考虑“i”,非常适合 5x5 矩阵):
keyword = 'keyword'
alphabet = 'abcfghjlmnpqstuvxz'
我有一个空的 5x5 矩阵,我需要先用键盘填写,然后再用字母表的其余部分填写。使用此关键字,矩阵应如下所示:
[k, e, y, w, o]
[r, d, a, b, c]
[f, g, h, j, l]
[m, n, p, q, s]
[t, u, v, x, z]
这就是我尝试插入关键字字符的方式,但我被困在了这里。当这个嵌套循环完成时,矩阵被 0 填充:
#uniquechars is the keyword
uniqueLen = len(uniqueChars)
keywordCounter = 0
for i in range(0, 5):
for j in range(0, 5):
while keywordCounter < uniqueLen:
#print('keywordCounter: ', keywordCounter)
#print('uniqueLen: ', uniqueLen)
#print(uniqueChars[keywordCounter])
matrix[i][j] = uniqueChars[keywordCounter]
keywordCounter = keywordCounter + 1
#print(matrix[i][j])
而且我不知道如何把其余的字母放在里面。
有什么想法吗?
【问题讨论】:
-
什么是
uniqueChars? -
我的错。 uniqueChars 是关键字。