Skip to content

Lizkaned/Multiple_permutation_cipher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Multiple_permutation_cipher

def encrypt(text: str, col_key: str, row_key: str): result: list = [''] * (len(col_key) * len(row_key))

for i in range(0, len(row_key)):
    for j in range(0, len(col_key)):
        new_row_i = int(row_key[i])
        new_col_i = int(col_key[j])
        result[(new_col_i - 1) * len(row_key) + (new_row_i - 1)] = text[i *
                                                                        len(col_key) + j] if i * len(col_key) + j < len(text) else '_'
return ''.join(result)

def decrypt(text: str, col_key: str, row_key: str): result: list = [''] * (len(col_key) * len(row_key))

for i in range(0, len(row_key)):
    for j in range(0, len(col_key)):
        new_row_i = int(row_key[i])
        new_col_i = int(col_key[j])
        result[i * len(col_key) + j] = text[(new_col_i - 1) * len(row_key) + (new_row_i - 1)
                                            ] if (new_col_i - 1) * len(row_key) + (new_row_i - 1) < len(text) else ''
return ''.join(result)

text: str = input('Введіть текст: ') col_key: str = input('Введіть порядок перестановки стовпчиків: ') row_key: str = input('Введіть порядок перестановки рядків: ') encrypted: str = encrypt(text, col_key, row_key) print("Зашифрований текст: ", encrypted) print("Розшифрований текст: ", decrypt(encrypted, col_key, row_key))

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published