AutoKey - ремонт и замена автоключей

Автоключ (autokey) - это алгоритм криптографии, в котором каждый символ открытого текста используется в качестве ключа для шифрования следующих символов. Автоключ может быть использован как для шифрования, так и для дешифровки сообщений.

Приведем пример кода на языке Python для шифрования сообщения с использованием автоключа:

python
def autokey_cipher(string, key):
    # Преобразование ключа в цифровой массив
    key_arr = [ord(i) - 97 for i in key.lower()]
    # Перевод строки в нижний регистр и удаление пробелов
    string = string.lower().replace(" ", "")
    # Преобразование строки в цифровой массив
    str_arr = [ord(i) - 97 for i in string]
    # Инициализация массива для зашифрованного сообщения
    cipher_arr = []
    # Добавление первых символов ключа в зашифрованную строку
    for i in range(len(key_arr)):
        cipher_arr.append((key_arr[i] + str_arr[i]) % 26)
    # Итерация по остальным символам строки и ключа
    for i in range(len(key_arr), len(str_arr)):
        cipher_arr.append((str_arr[i] + cipher_arr[i-len(key_arr)]) % 26)
    # Преобразование зашифрованного массива в строку
    cipher = "".join([chr(i+97) for i in cipher_arr])
    return cipher

Для расшифровки сообщения, полученного при помощи автоключа, можно использовать следующий код:

python
def autokey_decipher(cipher, key):
    # Преобразование ключа в цифровой массив
    key_arr = [ord(i) - 97 for i in key.lower()]
    # Преобразование строки в цифровой массив
    cipher_arr = [ord(i) - 97 for i in cipher.lower()]
    # Инициализация массива для расшифрованного сообщения
    str_arr = []
    # Расчет и добавление первых символов сообщения
    for i in range(len(key_arr)):
        str_arr.append((cipher_arr[i] - key_arr[i]) % 26)
    # Итерация по остальной части сообщения и ключа
    for i in range(len(key_arr), len(cipher_arr)):
        str_arr.append((cipher_arr[i] - str_arr[i-len(key_arr)]) % 26)
    # Преобразование расшифрованного массива в строку
    string = "".join([chr(i+97) for i in str_arr])
    return string

Похожие вопросы на: "autokey "

Multi Level – Новая стратегия управления бизнесом
CSS calc: упрощаем расчеты в CSS
Купить SXS мотовездеход для бездорожья в интернет-магазине с доставкой
Git Tag: How to Create and Use Tags in Git
Inbox Google – ваш надежный помощник в управлении почтой
YAGPDB.xyz - многофункциональный бот для Discord
Count Distinct: Find Unique Values in Your Data
<h1>Найди строки: отличный инструмент для поиска в текстовых и кодовых файлах
<h1>Стилизация текста с помощью CSS underline
<h1>Java String to Date: Conversion and Formatting