[+] A4 P4.1
This commit is contained in:
@@ -34,6 +34,8 @@ def grid_encrypt(k: int, plaintext: str) -> str:
|
|||||||
>>> grid_encrypt(8, 'DAVID AND MARIO TEACH COMPUTER SCIENCE!!')
|
>>> grid_encrypt(8, 'DAVID AND MARIO TEACH COMPUTER SCIENCE!!')
|
||||||
'DDTMCA EPIVMAUEIACTNDRHEC I REAOC !N OS!'
|
'DDTMCA EPIVMAUEIACTNDRHEC I REAOC !N OS!'
|
||||||
"""
|
"""
|
||||||
|
rows = len(plaintext) // k
|
||||||
|
return ''.join(plaintext[i % rows * k + i // rows] for i in range(len(plaintext)))
|
||||||
|
|
||||||
|
|
||||||
def grid_decrypt(k: int, ciphertext: str) -> str:
|
def grid_decrypt(k: int, ciphertext: str) -> str:
|
||||||
@@ -47,6 +49,8 @@ def grid_decrypt(k: int, ciphertext: str) -> str:
|
|||||||
>>> grid_decrypt(8, 'DDTMCA EPIVMAUEIACTNDRHEC I REAOC !N OS!')
|
>>> grid_decrypt(8, 'DDTMCA EPIVMAUEIACTNDRHEC I REAOC !N OS!')
|
||||||
'DAVID AND MARIO TEACH COMPUTER SCIENCE!!'
|
'DAVID AND MARIO TEACH COMPUTER SCIENCE!!'
|
||||||
"""
|
"""
|
||||||
|
cols = len(ciphertext) // k
|
||||||
|
return ''.join(ciphertext[i % k * cols + i // k] for i in range(len(ciphertext)))
|
||||||
|
|
||||||
|
|
||||||
def plaintext_to_grid(k: int, plaintext: str) -> list[list[str]]:
|
def plaintext_to_grid(k: int, plaintext: str) -> list[list[str]]:
|
||||||
|
|||||||
Reference in New Issue
Block a user