Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 30.05.2019
Сообщений: 8

Шифрование методом циклического сдвига

26.01.2020, 17:59. Показов 1513. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет ребят) я в с# ноль к сожалению... Суть такая, есть программа, поясните что означает каждая строчка, заранее спасибо)
Напишите программы шифрования и расшифрования методом циклического сдвига. Каждая порция открытого текста состоит из m блоков. Каждый блок, состоящий из n байт, сдвигается влево (при расшифровании вправо) на k0, k1, …, km-1 битов соответственно. Проверьте работу программ при m=3, n=4 и K=11,5,9.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
 
namespace Lab2
{
    class Program
    {
 
        static int m = 3, n = 4;
        static int[] K = { 11, 5, 9 };
 
        static void Main(string[] args)
        {
            Console.WriteLine("Введите текст : ");
            string text = Console.ReadLine();
 
            Encode(ref text, true);
            Console.WriteLine("\nЗашифрованный текст : ");
            Console.WriteLine(text);
 
            Encode(ref text, false);
            Console.WriteLine("\nРасшифрованный текст : ");
            Console.WriteLine(text);
 
            Console.ReadKey();
        }
 
        
        static void Encode(ref string text, bool crypt)
        {
            byte[] arr = Encoding.Default.GetBytes(text);
            int N = text.Length / (m * n);
            if (text.Length % (m * n) != 0) N++;
            Array.Resize(ref arr, N * n * m);
            for (int i = 0; i < N; i++)
            {
                uint[] S = new uint[m]; 
 
                
                for (int j = 0; j < m; j++)
                {   
                    S[j] = BitConverter.ToUInt32(arr, i * m * n + j * 4);
                }
                for (int j = 0; j < m; j++)
                {
                    if (crypt)
                        S[j] = (S[j] << K[j]) |  
                            (S[j] >> (32 - K[j])); 
                    else 
                        S[j] = (S[j] >> K[j]) | (S[j] << (32 - K[j]));
                }
 
                for (int j = 0; j < m; j++)
                {
                    for (int k = 0; k < n; k++)
                    {
                        arr[i * m * n + j * 4 + k] = (byte)(S[j] >> (k * 8));
                    }
                }
            }
            text = Encoding.Default.GetString(arr);
        }
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.01.2020, 17:59
Ответы с готовыми решениями:

Подпрограмма циклического сдвига направо
Реализовать подпрограмму циклического сдвига направо . Код максимум пишется на 3-4 строчки. Входные данные public static string...

Описать процедуру циклического сдвига массива
Полиморфизм.Описать процедуру MoveLeft(A,N,k)1|MoveRight(A,N,k)2, осуществляющую циклический сдвиг элементов вещественного массива A...

Осуществление циклического сдвига элементов прямоугольной матрицы на n элементов вправо
помогите пожалуйста....

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.01.2020, 17:59
Помогаю со студенческими работами здесь

Дешифрование после шифрования методом сдвига
Есть программа шифрования методом сдвига,как реализовать дешифроку?может кто нибудь дописать? using System.Collections.Generic; using...

Усиление края методом сдвига и разности с ядром 3
Усиление края методом сдвига и разности с ядром 3 Ядро 3 -1 0 0 0 1 0 0 0 0

Шифрование методом Виженера
Здравствуйте, для начала расскажу что из себя представляет шифр Виженера: берется таблица Виженера, состоящая из циклически сдвигаемых...

Шифрование методом перестановки
Нужно очень сильно программа для шифрование и дешифрирование данных которая шифрует текст от 2000 - 3000 символов. В заранее говорю облазил...

Шифрование методом замены
Задание 1 Решить задачу, используя один из классов строк: String или StringBuilder. Дизайн формы разработать самостоятельно....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru