1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Шифровка/дешифровка

Тема в разделе "Вопросы новичков и не только", создана пользователем ymerla91, 16 дек 2013.

  1. ymerla91

    ymerla91 Member

    Репутация:
    0
    Регистрация:
    16 дек 2013
    Сообщения:
    5
    Симпатии:
    0
    здравствуйте.не знаю как сделать дешифровку. у меня сделана шифровка. не могли бы вы помочь с дешифровкой и если не сложно добавить комментарии. И возможно ли вывести зашифрованый и дешифрованый текст таблицей как в примере?

    вот исходная задача.
    Простая перестановка. Выбирается размер блока шифрования в n столбцов и m строк и ключевая последовательность, которая формируется из натурального ряда чисел 1,2,...,n случайной перестановкой.
    Шифрование проводится в следующем порядке:
    Шифруемый текст записывается последовательными строками под числами ключевой последовательности, образуя блок шифрования размером n*m.
    Зашифрованный текст выписывается колонками в порядке возрастания номеров колонок, задаваемых ключевой последовательностью.
    Заполняется новый блок и т.д.
    Например, зашифруем текст
    ГРУЗИТЕ_АПЕЛЬСИНЫ_БОЧКАХ
    блоком размером 8*3 и ключом 5-8-1-3-7-4-6-2.
    Таблица простой перестановки будет иметь вид:
    Ключ
    5 8 1 3 7 4 6 2
    Г Р У З И Т Е _
    А П Е Л Ь С И Н
    Ы _ Б О Ч К А Х
    Зашифрованное сообщение:
    УЕБ_НХЗЛОЕСЛГАЫЕИАИЬЧРП_
    Расшифрование выполняется в следующем порядке:
    Из зашифрованного текста выделяется блок символов размером n*m.
    Этот блок разбивается на n групп по m символов.
    Символы записываются в те столбцы таблицы перестановки, номера которых совпадают с номерами групп в блоке. Расшифрованный текст читается по строкам таблицы перестановки.
    Выделяется новый блок символов и т.д.

    Код:
    program lab1;
    uses crt;
    var
    i, M: longint;
    n, o, oo: byte;
    R, T: string;
    Const
    S: string = 'грузите_апельсины_бочках';
    K: longint = 58137462;
    Begin
    i:=k;
    while i<>0 do
    begin
    inc(n);
    i:=i div 10;
    end;
    M:=0;
    For o:=1 to n do
    Begin
    i:=k;
    For oo:=1 to n do
    Begin
    if i mod 10 = o then M:=(M+oo)*10;
    i:=i div 10;
    End;
    End;
    M:=M div 10;
    R:='';
    For o:=1 to n do
    Begin
    oo:=n-(M mod 10)+1;
    T:='';
    while oo<=length(S) do
    Begin
    T:=T+S[oo];
    oo:=oo+n;
    End;
    M:=M div 10;
    R:=T+R;
    End;
    Writeln;
    Writeln('Зашифровать:');
    Writeln('kei: 58137462');
    Writeln('Исходный код: ',S);
    Writeln('Зашифрованый текст:',R);
    Writeln;
    Writeln('Дешифровать:');
    Writeln('kei: 58137462');
    Writeln('Зашифрованый текст: ' );
    Writeln('Дешифрованный текст:' );
    End.
     
Загрузка...

Поделиться этой страницей