改变矩阵中的字符 - 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)]
我正在做一个 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)]