Deszyfrowanie szyfru kolumnowego

0

Witam mam problem z szyfrem kolumnowym. Polega on na narysowaniu tabeli o ilości kolumn co ilość cyfr w kluczu np. dla klucza {2,1,4,0,3} liczba kolumn wynosi 5. Następnie dzielimy nasze słowo przez liczbę kolumn i jeżeli reszta z dzielenia jest różna od 0 to znaczy, że zabraknie miejsca i dzielimy przez liczbę kolumn+1. Następnie poziomo zapisujemy słowo w tabeli i szczytujemy po kolumnach tak jak na zdjęciu. Moglby ktos pomoc z kodem w pythonie?

0

Na czym ta pomoc ma polegać?

0

Odczytujesz kolumnami w kolejnosci numerow
kolumna 2: YNA
kolumna 1: RAZ
kolumna 4: TL
kolumna 0: KOI
kolumna 3: PA

Wynik: YNARAZTLKOIPA

0
def encrypt(message, key):
    # wyznaczamy liczbę kolumn
    num_cols = len(key)
    # dzielimy długość słowa przez liczbę kolumn i określamy resztę z dzielenia
    num_rows, remainder = divmod(len(message), num_cols)
    # jeżeli reszta z dzielenia jest różna od 0, to dodajemy 1 do liczby wierszy
    if remainder != 0:
        num_rows += 1
    # tworzymy pustą tablicę do przechowywania słowa
    table = [[''] * num_cols for i in range(num_rows)]
    # wypełniamy tablicę poziomo, w kolejnych kolumnach
    for i, char in enumerate(message):
        row, col = divmod(i, num_cols)
        table[row][col] = char
    # szyfrujemy przez odczytanie kolumn w kolejności określonej przez klucz
    ciphertext = ''
    for col in key:
        ciphertext += ''.join(table[row][col] for row in range(num_rows))
    return ciphertext

1 użytkowników online, w tym zalogowanych: 0, gości: 1