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

Шифратор текста в цифровые значения и обратно

18.02.2018, 18:50. Показов 3556. Ответов 22

Студворк — интернет-сервис помощи студентам
Здравствуйте. Необходимо сделать программу - шифратор текста. Имеется 2 текстовых поля и кнопка. Есть таблица, в которой определенным словам и словосочетаниям уже даны цифровые значения. Если во введенном тексте нет слов из таблицы, то введенные символы шифруются по одному символу согласно этой же таблицы.
Например

привет - 325
как дела - 448
...
...
а - 678
б - 789
...
я - 747
1 - 222
...

Начал делать с помощью Select Case
VB.NET
1
2
3
4
5
6
7
8
9
10
11
For x = 1 To Len(TextBox1.Text)
Select Case Mid(TextBox1.Text, x, 1)
                Case "а"
                    TextBox2.Text = TextBox2.Text + "678"
                Case "б"
                    TextBox2.Text = TextBox2.Text + "789"
                Case "в"
                    TextBox2.Text = TextBox2.Text + "777"
...
  End Select
        Next
Но записывать всю таблицу через Select Case неправильно. И при расшифровывании цифровых значений в текст трехзначные числа расшифровываются все подряд. Например "привет как дела" - 325448 расшифровывает как 325 - 254 - 544 и т.д.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.02.2018, 18:50
Ответы с готовыми решениями:

Простой шифратор текста
Пытаюсь сделать простой шифратор текста,через XOR.Что не могу не чего понять. private void button1_Click(object sender, EventArgs e) ...

Шифратор текста на Salsa20
У меня есть вот этот код using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...

Шифратор текста в картинку
привет люди...... плачу от 7 до 10$ тому кто напишет шифратор текста....!!!!!!! Условие такое....текст нужно зашифровать в картинку... ...

22
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
19.02.2018, 10:41
Dimmm-Ka, для того, чтобы не заносить все это в Select Case, должен быть какой-то алгоритм, по которому шифруются символы.
0
2 / 2 / 0
Регистрация: 08.12.2017
Сообщений: 23
19.02.2018, 19:58  [ТС]
Orlangur1991, определенного алгоритма шифрования нет. Таблица шифрования написана в случайном порядке

Добавлено через 8 минут
В идеале символы шифрования должны били браться из файла. Но сначала хотел попробовать сделать так. Может есть вариант, как использовать файл, как словарь? При вводе текста идет проверка на наличие каждого слова в файле. Если это слово есть в файле, то его значение записывается во второй текстбокс, если слово не найдено, то оно шифруется побуквенно согласно определенной таблицы
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,902
Записей в блоге: 1
19.02.2018, 21:29
Dimmm-Ka, если все цисла трехзначные, то используй Dictionary(Of String, String) для упрощения алгоритма.

Цитата Сообщение от Dimmm-Ka Посмотреть сообщение
И при расшифровывании цифровых значений в текст трехзначные числа расшифровываются все подряд. Например "привет как дела" - 325448 расшифровывает как 325 - 254 - 544 и т.д.
Надо думать цикл сделан с шагом 1, а нужно с шагом 3.
2
2 / 2 / 0
Регистрация: 08.12.2017
Сообщений: 23
20.02.2018, 19:47  [ТС]
OwenGlendower, есть пример использования Dictionary, похожим на мой вариант? не встречался раньше с ним
1
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,902
Записей в блоге: 1
21.02.2018, 00:35
Dimmm-Ka,
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
' Словарь для шифровки
Dim dict1 As New Dictionary(Of String, String) From {
    { "привет", "325" }, _
    { "как дела", "448" }, _
    { "а", "678" }, _
    { "б", "789" }, _
    { "я", "747" }, _
    { "1", "222" } _
}
' Словарь для дешифровки
Dim dict2 As Dictionary(Of String, String) = dict1.ToDictionary(Function(kvp) kvp.Value, Function(kvp) kvp.Key)
 
Dim txt1 As String = "привет! как дела? абя1"
 
' Шифровка
Dim txt2 = txt1
For Each key In From k In dict1.Keys Order By k.Length Descending, k
    txt2 = txt2.Replace(key, dict1(key))
Next
 
' Дешифровка
Dim txt3 As String = Regex.Replace(txt2, "\d{3}", Function(m) dict2(m.Value))
4
2 / 2 / 0
Регистрация: 08.12.2017
Сообщений: 23
21.02.2018, 23:30  [ТС]
OwenGlendower, спасибо) сделал так.

кнопка 1:
VB.NET
1
2
3
4
5
6
7
8
Dim txt1 As String = TextBox1.Text
 
        ' Шифровка
        Dim txt2 = txt1
        For Each key In From k In dict1.Keys Order By k.Length, k Descending
            txt2 = txt2.Replace(key, dict1(key))
            TextBox2.Text = txt2
        Next
кнопка 2:
VB.NET
1
2
3
' Дешифровка
        Dim txt3 As String = Regex.Replace(TextBox3.Text, "\d{3}", Function(m) dict2(m.Value))
        TextBox4.Text = txt3
Но при шифровании слова, которое есть в словаре, он шифрует его по-буквенно, например "как дела" он шифрует не как 448, а как "к - 111", а - 678, "к - 111", ...
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,902
Записей в блоге: 1
22.02.2018, 07:31
Dimmm-Ka, порядок сортировки нужно исправить.
VB.NET
1
dict1.Keys Order By k.Length Descending, k
Добавлено через 7 часов 46 минут
И еще совет. Вынеси обновление TextBox из цикла. Так более эффективно.
VB.NET
1
2
3
4
5
6
        ' Шифровка
        Dim txt1 As String = TextBox1.Text
        For Each key In From k In dict1.Keys Order By k.Length  Descending, k
            txt1 = txt1.Replace(key, dict1(key))
        Next
        TextBox2.Text = txt1
3
2 / 2 / 0
Регистрация: 08.12.2017
Сообщений: 23
18.03.2018, 09:47  [ТС]
OwenGlendower, при добавлении в словарь цифр шифровка сбивается.
VB.NET
1
2
3
4
5
6
7
8
9
10
 
    { "привет", "325" }, _
    { "как дела", "448" }, _
    { "а", "678" }, _
    { "б", "789" }, _
    { "я", "747" }, _
    { "1", "222" } _
    { "2", "345" } _
    { "3", "446" } _
    { "4", "852" } _
отдельные буквы шифруются правильно, а слова, которые были в словаре шифруются побуквенно, но эти буквы не соответствуют словарю. И при дешифровке этого же выражения появляется ошибка "Данный ключ отсутствует в словаре."

Добавлено через 13 часов 14 минут
OwenGlendower, без цифр в словаре все работает
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,902
Записей в блоге: 1
20.03.2018, 08:18
Лучший ответ Сообщение было отмечено Dimmm-Ka как решение

Решение

Dimmm-Ka, нужно немного поменять порядок замены при шифровании. Сначала будем менять цифры, а только потом все остальное. Причем цифры будет заменять строго по порядку чтобы не испортить уже зашифрованный текст.
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
Dim dict1 As New Dictionary(Of String, String) From {
    { "привет", "325" }, _
    { "как дела", "448" }, _
    { "а", "678" }, _
    { "б", "789" }, _
    { "я", "747" }, _
    { "1", "222" }, _
    { "2", "345" }, _
    { "3", "446" }, _
    { "4", "852" } _
}
 
' Словарь для дешифровки
Dim dict2 As Dictionary(Of String, String) = dict1.ToDictionary(Function(kvp) kvp.Value, Function(kvp) kvp.Key)
 
Dim txt1 As String = "привет! как дела? абя1"
 
' Шифровка
Dim sb As New StringBuilder(txt1)
' Сначала цифры
For I As Integer = 0 To sb.Length-1
    If Char.IsDigit(sb(I)) AndAlso dict1.ContainsKey(sb(I)) Then
        Dim str As String = sb(I)
        sb.Remove(I, 1)
        sb.Insert(I, dict1(str))
        I += dict1(str).Length-1
    End If
Next
' Потом все остальное
For Each key In From k In dict1.Keys Where Not (k.Length=1 AndAlso Char.IsDigit(k(0))) Order By k.Length Descending, k
    sb.Replace(key, dict1(key))
Next
 
Dim txt2 = sb.ToString()
 
' Дешифровка
Dim txt3 As String = Regex.Replace(txt2, "\d{3}", Function(m) dict2(m.Value))
2
2 / 2 / 0
Регистрация: 08.12.2017
Сообщений: 23
21.03.2018, 08:59  [ТС]
OwenGlendower, спасибо большое! работает
0
2 / 2 / 0
Регистрация: 08.12.2017
Сообщений: 23
12.08.2018, 15:39  [ТС]
OwenGlendower, Не все цифры шифруются. Особенно, если цифры попадаются в конце текста. В начале текста они зашифровываются согласно ключа. А в конце не зашифровываются и остаются такими же. И при расшифровке выходит ошибка, что такого ключа нет в словаре, либо, если эти цифры совпадут с другим ключом, расшифровываются согласно этого другого ключа.
Например
"текст текст 25 текст текст 5656"
зашифровывается все, кроме последних цифр:
"xxxxxxxxxxxxx....xxxxxx5656"
Прошу Вас оказать помощь
0
12.08.2018, 21:03

Не по теме:

Dimmm-Ka, долго же ты тестировал

0
2 / 2 / 0
Регистрация: 08.12.2017
Сообщений: 23
12.08.2018, 21:07  [ТС]
Orlangur1991, )))
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,902
Записей в блоге: 1
13.08.2018, 12:56
Dimmm-Ka, попробуй такой вариант (изменил цикл перебора цифр)
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
Dim dict1 As New Dictionary(Of String, String) From {
    { "привет", "325" }, _
    { "как дела", "448" }, _
    { "1", "123" }, _
    { "2", "234" }, _
    { "3", "345" }, _
    { "4", "456" }, _
    { "5", "567" }, _
    { "6", "678" }, _
    { "7", "789" }, _
    { "8", "890" }, _
    { "9", "901" }, _
    { "0", "012" } _
}
 
' Словарь для дешифровки
Dim dict2 As Dictionary(Of String, String) = dict1.ToDictionary(Function(kvp) kvp.Value, Function(kvp) kvp.Key)
 
Dim txt1 As String = "привет! 23 как 450 дела? абя 123"
'Dim txt1 As String = "п 123"
Console.WriteLine(txt1)
 
' Шифровка
Dim sb As New StringBuilder(txt1)
' Сначала цифры
Dim I As Integer = 0
While I < sb.Length
    If Char.IsDigit(sb(I)) AndAlso dict1.ContainsKey(sb(I)) Then
        Dim str As String = sb(I)
        sb.Remove(I, 1)
        sb.Insert(I, dict1(str))
        I += dict1(str).Length-1
    End If
    
    I += 1
End While
' Потом все остальное
For Each key In From k In dict1.Keys Where Not (k.Length=1 AndAlso Char.IsDigit(k(0))) Order By k.Length Descending, k
    sb.Replace(key, dict1(key))
Next
 
Dim txt2 = sb.ToString()
Console.WriteLine(txt2)
 
' Дешифровка
Dim txt3 As String = Regex.Replace(txt2, "\d{3}", Function(m) dict2(m.Value))
Console.WriteLine(txt3)
2
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16147 / 11268 / 2890
Регистрация: 21.04.2018
Сообщений: 33,131
Записей в блоге: 2
13.08.2018, 19:16
Вариант решения в "лоб"
Кликните здесь для просмотра всего текста
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
    Class DictClass
        Property Key As String
        Property Value As String
        Shared Function ArrToList(StringArr As String(,)) As List(Of DictClass)
            If IsNothing(StringArr) Then Return Nothing
            ArrToList = New List(Of DictClass)
            If UBound(StringArr) = 0 Then Exit Function
            For Ind As Integer = 0 To UBound(StringArr)
                ArrToList.Add(New DictClass With {.Key = StringArr(Ind, 0), .Value = StringArr(Ind, 1)})
            Next
        End Function
 
        Public Class ComparerDictKey
            Implements IComparer(Of DictClass)
 
            Public Function Compare(ByVal x As DictClass,
            ByVal y As DictClass) As Integer _
            Implements IComparer(Of DictClass).Compare
 
                Return (x.Key).CompareTo(y.Key)
            End Function
        End Class
 
        Shared Function Coding(Dict As List(Of DictClass), ByVal StringCoding As String) As String
            Dim Compar As New ComparerDictKey
 
            Dict.Sort(Compar)
            Coding = ""
            Dim Begin As Integer = 0
            Do While StringCoding.Length > Begin
                Dim DictFind = New DictClass
                Dim FullKey As String
                Dim Value As String
                Dim BeginLen As Integer = 1
                FullKey = ""
                Value = ""
                Do While StringCoding.Length >= Begin + BeginLen
                    DictFind.Key = StringCoding.Substring(Begin, BeginLen)
                    Dim IndKeyNew As Integer = Dict.BinarySearch(DictFind, Compar)
                    If IndKeyNew >= 0 Then
                        FullKey = DictFind.Key
                        Value = Dict.ElementAt(IndKeyNew).Value
                    Else
                        Dim PrevKey As String = Dict.ElementAt(-IndKeyNew - 1).Key
                        If PrevKey.Length > DictFind.Key.Length AndAlso PrevKey.Substring(0, DictFind.Key.Length) = DictFind.Key Then
                            BeginLen += 1
                        Else
                            Exit Do
                        End If
                    End If
                    BeginLen += 1
                Loop
                If Value = "" Then
                    MsgBox("Ошибка кодирования!")
                End If
                Coding += Value
                Begin += FullKey.Length
            Loop
        End Function
 
        Public Class ComparerDictValue
            Implements IComparer(Of DictClass)
 
            Public Function Compare(ByVal x As DictClass,
            ByVal y As DictClass) As Integer _
            Implements IComparer(Of DictClass).Compare
 
                Return (x.Value).CompareTo(y.Value)
            End Function
        End Class
 
        Shared Function DeCoding(Dict As List(Of DictClass), ByVal StringDeCoding As String) As String
            If StringDeCoding.Length Mod 3 <> 0 Then
                MsgBox("Ошибка декодирования!")
            End If
            Dim ValueArr(StringDeCoding.Length \ 3)
            Dim Compar As New ComparerDictValue
            Dict.Sort(Compar)
            DeCoding = ""
            Dim Begin As Integer = 0
            For BeginCod As Integer = 0 To StringDeCoding.Length - 1 Step 3
                Dim DictFind = New DictClass
                DictFind.Value = StringDeCoding.Substring(BeginCod, 3)
                Dim IndValue As Integer = Dict.BinarySearch(DictFind, Compar)
                If IndValue < 0 Then
                    MsgBox("Ошибка декодирования!")
                End If
                DeCoding += Dict.ElementAt(IndValue).Key
            Next BeginCod
        End Function
    End Class
 
 
    Dim MyDict As List(Of DictClass)
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim MyDictArrr(,) = {
                        {"привет", "325"},
                        {"как дела", "448"},
                        {"а", "678"},
                        {"б", "789"},
                        {"л", "021"},
                        {"в", "211"},
                        {" ", "781"},
                        {"к", "741"},
                        {"п", "ппп"},
                        {"т", "999"},
                        {"р", "230"},
                        {"и", "555"},
                        {"я", "747"},
                        {"1", "222"},
                        {"д", "620"},
                        {"2", "345"},
                        {"и", "367"},
                        {"3", "446"},
                        {"4", "852"},
                        {"е", "100"}
                    }
        MyDict = DictClass.ArrToList(MyDictArrr)
 
    End Sub
    Private Sub ButtonCoding_Click(sender As Object, e As EventArgs) Handles ButtonCoding.Click
        TextBox2.Text = DictClass.Coding(MyDict, TextBox1.Text)
    End Sub
    Private Sub ButtonDeCoding_Click(sender As Object, e As EventArgs) Handles ButtonDeCoding.Click
        TextBox1.Text = DictClass.DeCoding(MyDict, TextBox2.Text)
    End Sub


Добавлено через 1 час 11 минут
Немного перемудрил. надо If на 45-49 строках поменять на
VB.NET
1
2
3
4
5
                        If Not (PrevKey.Length > DictFind.Key.Length AndAlso PrevKey.Substring(0, DictFind.Key.Length) = DictFind.Key Then
 
                            Exit Do
 
                        End If
2
4709 / 3662 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
14.08.2018, 14:30
Обобщил
Кликните здесь для просмотра всего текста
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
Imports System.IO
Imports System.Runtime.Serialization.Formatters.Binary
Public Class Form3
    Private dCod As Dictionary(Of String, Integer)
    Private dDecod As Dictionary(Of Integer, String)
    Private abFile As String
    Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        abFile = Path.Combine(Application.StartupPath, "Alphabet.dat")
    End Sub
    Private Sub Create_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        MessageBox.Show("Старые сообщения не смогут быть прочитаны в новом алфавите. Продолжить?", "Вы уверены?", _
           MessageBoxButtons.YesNo, MessageBoxIcon.Question)
        creationNewAlphabet()
    End Sub
    Private Sub Coding_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        If dCod Is Nothing Then
            dCod = BinaryDeserialize(abFile)
            dDecod = dCod.ToDictionary(Function(kvp) kvp.Value, Function(kvp) kvp.Key)
        End If
        TextBox2.Clear()
        Dim strC As String = Coding(TextBox1.Text, dCod)
        With SaveFileDialog1
            .Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
            .FilterIndex = 0
            .RestoreDirectory = True
            .InitialDirectory = Application.StartupPath
            If .ShowDialog() = DialogResult.OK Then
                File.WriteAllText(.FileName, strC)
                TextBox2.Text = strC
            End If
        End With
    End Sub
    Private Sub deCoding_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        Dim strC As String = ""
        With OpenFileDialog1
            .Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
            .FilterIndex = 0
            .RestoreDirectory = True
            .InitialDirectory = Application.StartupPath
            If .ShowDialog() = DialogResult.OK Then
                strC = File.ReadAllText(.FileName)
                TextBox2.Text = strC
            Else
                Exit Sub
            End If
        End With
        TextBox3.Clear()
        If dDecod Is Nothing Then
            dCod = BinaryDeserialize(abFile)
            dDecod = dCod.ToDictionary(Function(kvp) kvp.Value, Function(kvp) kvp.Key)
        End If
        strC = System.Text.RegularExpressions.Regex.Replace(strC, "\d{3}", Function(m) dDecod(m.Value))
        TextBox3.Text = strC
    End Sub
    Private Sub creationNewAlphabet()
        Dim r As New Random()
        Dim vv As Integer() = Enumerable.Range(100, 899).OrderBy(Function(n) r.Next).Take(80).ToArray() 'А-я;Ё;ё;0-9; ;формат;версии;сведения
        Dim kk(vv.Length - 1) As String
        For i = 0 To 63
            kk(i) = Chr(i + 192)
        Next
        kk(64) = Chr(168)
        kk(65) = Chr(184)
        For i = 66 To 75
            kk(i) = Chr(i - 66 + 48)
        Next
        kk(76) = Chr(32)
        kk(77) = "формат"
        kk(78) = "версии"
        kk(79) = "сведения"
        Dim da As New Dictionary(Of String, Integer)
        For i = 0 To vv.Length - 1
            da.Add(kk(i), vv(i))
        Next
        BinarySerialize(da, abFile)
    End Sub
    Private Function Coding(ByVal text As String, ByVal da As Dictionary(Of String, Integer)) As String
        Dim wrd() As String = text.Split({" "c, "."c, ","c, "!"c, "?"c}, StringSplitOptions.RemoveEmptyEntries)
        Dim sb As New System.Text.StringBuilder
        Dim wr As String = ""
        For i = 0 To wrd.Length - 1
            wr = wrd(i)
            If da.ContainsKey(wr) Then
                sb.Append(da(wr))
            Else
                For j = 0 To wr.Length - 1
                    sb.Append(da(wr(j)))
                Next
            End If
            sb.Append(da(" "))
        Next
        Return sb.ToString
    End Function
    Private Sub BinarySerialize(ByVal item As Dictionary(Of String, Integer), ByVal fileName As String)
        Using stream As Stream = File.Open(fileName, FileMode.Create)
            Dim binaryFormatter As BinaryFormatter = New BinaryFormatter()
            binaryFormatter.Serialize(stream, item)
        End Using
    End Sub
    Private Function BinaryDeserialize(ByVal fileName As String) As Dictionary(Of String, Integer)
        Using stream As Stream = File.Open(fileName, FileMode.OpenOrCreate)
            Dim Formatter As New BinaryFormatter()
            stream.Seek(0, SeekOrigin.Begin)
            Dim item As Dictionary(Of String, Integer) = DirectCast(Formatter.Deserialize(stream), Dictionary(Of String, Integer))
            Return item
        End Using
    End Function
End Class
Миниатюры
Шифратор текста в цифровые значения и обратно  
4
0 / 0 / 0
Регистрация: 21.02.2020
Сообщений: 32
23.02.2020, 14:12
Элд Хасп, Можете помочь по вашему коду шифратора/дешифратора в этой теме...При запуске программы если сначала кодировать слово в цифры то срабатывает, но раз через раз шифрует в соответствующее число, чаще шифрует почему то побуквеннно. Если после шифрования стереть область и декодировать то работает, но если декодировать сразу после запуска программы выдает ошибку декодирования, и иногда тоже даже при кодировании выдает тоже.
Visual Basic
1
DeCoding += Dict.ElementAt(IndValue).Key
System.ArgumentOutOfRangeException: "Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index"
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16147 / 11268 / 2890
Регистрация: 21.04.2018
Сообщений: 33,131
Записей в блоге: 2
23.02.2020, 14:38
Adwalker, а вам обязательно на VB?
Я уже полтора года как перешёл на C#.
1
0 / 0 / 0
Регистрация: 21.02.2020
Сообщений: 32
23.02.2020, 18:15
Элд Хасп, Не обязательно, уцепился за vb потому что в этой теме единственное что я нашел по этой задаче. Если вы можете помочь реализовать на c# буду очень признателен, а если еще и немного объяснения к коду будет чтоб я мог разобраться а не просто скопировать то вообще будет супер..Я вот тему создавал по своей задачке Как сделать Дешифратор, шифратор текста по базе шифров
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.02.2020, 18:15
Помогаю со студенческими работами здесь

Шифратор и дешифратор текста в richtextbox
Помогите зашифровать файл, который открыт в richTextBox1, не могу разобраться как

Сделать шифратор/дешифратор текста
Требуется сделать шифратор-дешифратор текста. Не просто заменять буквы, а нечто более сложное. Пока-что дошел до такого: ...

Шифратор текста, работа с файлами.
Шифратор Цезаря. Разработать программу, которая кодирует вводимый с клавиатуры или из файла исходный текст f1 и сохраняет его в выходном...

Неоходимо написать шифратор текста
Думаю лучше сразу показать на примере: Дается любое слово, количество блоков слова и ключ для блока Пример: безопа|сность;...

Шифратор текста методом подстановки
Доброго времени суток! Помогите решить проблему. Мне нужно написать шифратор который, шифрует текст методом подстановки, т.е. есть таблица...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru