改变矩阵中的字符 - ADFGVX Cipher

Change character in matrix - ADFGVX Cipher

我正在做一个 ADFGVX 密码编码器,当我提供我的密钥和明文进行编码时,我的密码没有完全填写。我会尝试更好地解释。

例如我的密钥是 WHISKY 我有这个密码 FFDXAAFAGFFDAGFF.

当我用我的密码生成矩阵时,发生的事情是,因为我的密码不能被密钥长度整除,它会自动在 space 中放入一个 0,但我想在其中放入一个字符那个地方,比如 "0" = "X"

我在这里放了一个 table 来说明发生了什么:

W H I S K Y
F F D X A A
F A G F F D
A G F F 0 0

这里我会把我的代码做的:

def Encrypt_Plaintext():
    mensagemoriginal = input("Introduza a mensagem a encriptar: ")
    mensagemoriginal = mensagemoriginal.upper()
    mensagemcifrada = ""
    for l in mensagemoriginal:
        if l in keysquare:
            mensagemcifrada += (keysquare[l])
    return mensagemcifrada
def Encrypt_Setup(key, ciphertext):
    width = len(key)
    height = math.ceil(len(ciphertext)/width)
    tabela = [[0 for x in range(width)] for y in range(height)]
    linhas = 0
    colunas = 0
    index = 0
    while (linhas < height):
        while(colunas < width):
            if(index == len(ciphertext)):
                break
            tabela[linhas][colunas] = ciphertext[index]
            index += 1
            colunas += 1
        linhas += 1
        colunas = 0
    return tabela

这个简单的更改使您可以在现在的 0 处使用 X,如果您需要的话:

tabela = [['X' for x in range(width)] for y in range(height)]