Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 6

Реализовать шифр одиночной перестановки

22.12.2014, 15:00. Показов 3335. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Нужна срочная помощь в написании программы. Шифр одиночной перестановки (текст «записывается» в таблицу по столбцам, а считывается по строкам; ключ – размер таблицы). Хочется чтобы записывался текст в поле, указывался ключ и ниже в поле выдавался зашифрованный текст. Ну и должна производиться дешифровка. Никак не могу разобраться и реализовать все это.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.12.2014, 15:00
Ответы с готовыми решениями:

Реализовать Шифр Цезаря
Нам в школе задали написать данную прогу (хоть Visual Basic изучали лишь 2-3 урока, потом просто писание программ пошло). У меня сейчас...

Метод одиночной перестановки
Пример: Исходный текст: Неясное становятся еще более не понятным. Ключ: ЛУНАТИК Л У Н А Т И К | А И К Л Н Т У 4 7 5 1...

Метод одиночной перестановки
Всем доброго времени суток . Столкнулась с такой проблемой , задали написать шифрование методом одиночной перестановки на delphi , я с...

5
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 6
25.12.2014, 20:25  [ТС]
Написал шифрование, вроде работает правильно. Не знаю как произвести дешифрование. И нужно сделать так, чтобы не зашифрованный текст открывался из текстового файла, шифровался и зашифрованный текст записывался с ключом в текстовый файл, разумеется далее чтобы он открылся и дешифровался. Помогите.
VB.NET
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
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Const DefText As String = "Неясное становится еще более непонятным" 'текст по умолчанию 
        Dim InText As String 'текст который надо зашифровать 
        Dim LenText As Integer 'длина этого текста 
        Dim OutText As String 'здесь будет зашифрованный текст 
        Dim Sim As String
        Dim i As Byte
        Dim xi As Byte ' 
        Dim XMax As Byte
        Dim ts As String
        Dim sc As Byte
        InText = InputBox("Введите сообщение", "Шифрование", DefText) 'ввод текста 
        If Len(InText) = 0 Then 'выход если нет текста 
            Exit Sub
        End If
        InText = UCase(InText) 'делаем все символы заглавными 
        ts = ""
        For i = 1 To Len(InText)
            Sim = Mid(InText, i, 1) ' 
            If Sim <> " " Then 'удаляем 
                ts = ts & Sim 'пробелы 
            End If ' 
        Next i
        InText = ts
        LenText = Len(InText) 'высчитываем новую длину
        XMax = 0
1:      XMax = InputBox("Введите ключ", "Шифрование", 0) 'ввод текста
        If Val(XMax) = 0 Then
            MsgBox("Введите ключ")
            GoTo 1
        End If
        If Val(XMax) = 1 Then
            MsgBox(DefText)
            Exit Sub
        End If
        sc = 0 'счетчик символов для вставки пробела 
        For i = 1 To XMax
            xi = i
incr:       Sim = Mid(InText, xi, 1)
            OutText = OutText & Sim
            sc = sc + 1
            If sc = 5 Then 'вставляем 
                OutText = OutText & " " 'разделительный 
                sc = 0 'пробел 
            End If 'групп 
            xi = xi + XMax
            If xi <= LenText Then 'если еще 
                GoTo incr 'не все символы 
            End If 'перебраны то повтор 
        Next i
        MsgBox(OutText) 'вывод текста 
    End Sub
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
27.12.2014, 18:24
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Вариант для VB.NET
VB.NET
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
Public Class Form2
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim s As String = "Определены границы земель государственной и коммунальной формы собственности на территорию более 55 тыс. га"
        Dim n As Integer = 11 '4 '6 '5 'число строк
        Dim sOut As String = codingStr(s, n) 'кодируем
        Label1.Text = sOut
        sOut = uncodingStr(sOut, n) 'декодируем
        Label2.Text = sOut
    End Sub
    Private Function codingStr(ByVal s As String, ByVal ns As Integer) As String
        Dim ss() As Char = s.ToCharArray
        Dim k As Integer = ss.Count
        Dim ms As Integer = k \ ns + 1
        If ns < 3 Then
            MsgBox("Нужно увеличить число строк!")
            Return ""
        End If
        If ms < 3 Then
            MsgBox("Нужно уменьшить число строк!")
            Return ""
        End If
        ReDim Preserve ss(ns * ms - 1)
        For Each ch As Char In ss
            If ch = Chr(0) Then
                Dim jj As Integer = Array.IndexOf(ss, ch)
                ss(jj) = Chr(32)
            End If
        Next
        Dim shr(ss.Count - 1) As Char
        Dim t As Integer = -1
        For i = 0 To ns - 1
            For j = 0 To ms - 1
                t += 1
                shr(t) = ss(i + ns * j)
            Next
        Next
        Return String.Join("", shr)
    End Function
    Private Function uncodingStr(ByVal s As String, ByVal ns As Integer) As String
        Dim ss() As Char = s.ToCharArray
        Dim k As Integer = ss.Count
        Dim ms As Integer = k \ ns
        Dim shr(ss.Count - 1) As Char
        Dim t As Integer = -1
        For j = 0 To ms - 1
            For i = 0 To ns - 1
                t += 1
                shr(t) = ss(j + ms * i)
            Next
        Next
        Return RTrim(String.Join("", shr))
    End Function
End Class
Миниатюры
Реализовать шифр одиночной перестановки  
0
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 6
06.01.2015, 19:12  [ТС]
Спасибо, но мне нужно, чтобы исходный текст вводился в текстовое поле, также вводился ключ в виде размера таблицы и по нажатию кнопки выводился зашифрованный текст и записывался в текстовый файл. А далее чтобы можно было открыть этот файл с зашифрованным текстом, ввести ключ и в поле появился дешифрованный текст. Помогите пожалуйста!
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
06.01.2015, 23:32
Думаю что все эти, в общем-то, базовые навыки (загрузить файл, сохранить файл, показать содержимое файла и т.д.), нужно изучать в первую очередь. По крайней мере, прежде чем пытаться реализовывать какие-либо алгоритмы.
Миниатюры
Реализовать шифр одиночной перестановки  
Вложения
Тип файла: zip WeakCrypto.zip (81.9 Кб, 82 просмотров)
1
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 6
07.01.2015, 00:46  [ТС]
Спасибо огромное!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.01.2015, 00:46
Помогаю со студенческими работами здесь

Шифрование методом одиночной перестановки
помогите разобраться с кодом что какая строка значит и почему в 9 строке именно 6? var st,kl,kk:string; t,tt:array of char; ...

Шифрование/дешифрование методом одиночной перестановки по ключу
Привет всем. очень нужна ваша помощь! Нужно реализовать код программы шифрования и дешифрирование методом одиночной перестановки по ключу....

Шифрование сообщения методом одиночной перестановки по ключу
Зашифруйте сообщение «ИЛЛЮЗИИ, ЧЕМ БОЛЬШЕ О НИХ ДУМАЕШЬ, ИМЕЮТ СВОЙСТВО МНОЖИТЬСЯ, ПРИОБРЕТАТЬ БОЛЕЕ ВЫРАЖЕННУЮ ФОРМУ.» методом одиночной...

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

Дополнить программу шифрования и дешифрования методом одиночной перестановки по ключу
Такая ситуация, в конце недели сдавать лабу, имеется уже готовый код программы шифрования и дешифрования текста методом одиночной...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3, Box2D, FreeType и SDL3_ttf из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru