powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите!!!
5 сообщений из 5, страница 1 из 1
Помогите!!!
    #32505386
Kleoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть зашифрованный текст:
“ ­-виэпгб-ьжюъни-п-хещэнягэи-гявэнпеяижт-е-йихещэнягэи-вгжюъняижт-еьвгжскюияьт-гйеа-е-ягя-ли-зжуъ#-Хещэнягэ-гмэнкюия-хещэяизья!-згягэцд-тпжтияьт-щюазыеид-гязэцягог-яизьян!-згазэияацд-пей-щюазыее-хещэгпнает-гвэийижтияьт-ьизэияацб-зжуъгб#”

Есть генератор псевдослучайных чисел:
Хn = (аХn-15 + bXn-14 + сХn-13 + d Хn-12+e Хn-1+f) mod m

Есть ключ:
X0=111, a=3, b=5, c=7, d=9, e=11, f=13 и m=256

Есть алгоритм расшифровки:
Организуем цикл для посимвольной обработки зашифрованного сообщения
a. Символ переводим в ASCII, а затем в двоичный код
b. С помощью генератора получаем очередной элемент гаммы, который переводим в двоичный код
c. В цикле складываем операцией XOR соответственные разряды двоичных кодов
d. Результат (двоичный код) переводим в десятичное число, а затем в символ из ASCII

У меня в итоге получилась какая-то белеберда. Последовательность из первых четырех символов для проверки расшифровала вручную в Excel - тоже самое.
Если кому-то не лень, расшифруйте этот чертов текст, а то я не могу найти, где ошибка.
Программка не большая, так что это много времени не займет.

Пожа-а-а-а-а-луйста.
...
Рейтинг: 0 / 0
Помогите!!!
    #32505436
Фотография Vadim Kutuzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я как-то не допонял алгоритм - разъяснишь?

1. Берём первый символ.
2. Находим его ASCII
3. Вот что дальше с генератором? Что такое индекс n (для первой буквы он равен 1?)? Если X0=111, то чему будет равен X1 (для примера)? Я не понял, если X0=111, ищем X1 - тогда X(n-15) = X(-14) == 0?
4. Затем ASCII XOR X1? (в двоичную систему переводить необязательно, XOR и так работает с двоичной системой)
5. Получаем число, переводим в букву и зависываем в новую строку.
6. -> 1. для второго символа...

Можешь разъяснить про генератор?
...
Рейтинг: 0 / 0
Помогите!!!
    #32505480
Kleoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну вот смотри:

X0=111

X1=(3*111^5 + 5*111^4 + 7*111^3 + 9*111^2 + 11*111+13) mod 256

Ясно, почему ты не понял: я не обратила внимания, что степень икса записалась подряд за (n-1)

Формула выглядит так:
Хn = (а*(Хn-1)^5 + b*(Xn-1)^4 + с*(Хn-1)^3 + d*(Хn-1)^2+e*(Хn-1)+f) mod m
...
Рейтинг: 0 / 0
Помогите!!!
    #32505494
Фотография Vadim Kutuzov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня тоже не получилось что-то нормальное вывести :(

В ASCII (пробелы - разделители): 45 161 131 248 64 19 82 65 192 16 103 78 103 177 57 109 34 97 84 181 132 65 28 31 78 81 41 221 190 227 243 125 96 227 4 111 213 154 195 13 136 65 232 216 232 57 168 61 160 51 194 45 21 17 147 131 203 210 187 157 34 116 119 242 32 105 157 242 94 26 64 74 19 4 126 76 111 113 50 169 40 172 140 181 80 67 18 31 128 71 41 221 186 250 226 122 174 33 52 117 196 129 220 223 142 145 44 211 241 33 188 42 179 36 222 253 8 217 136 157 210 196 166 140 34 189 188 231 238 115 130 237 75 24 156 82 2 10 115 88 98 160 35 109 52 178 65 183 134 89 25 4 128 79 62 23 160 234 238 99 99 239 204 111 213 155 205 223 128 77 44 215 254 60 182 61 165 51 193 38 25 17 158 133 196 1 184 142 61 123 106 229 232 161 148 245 68 1 82 79 0 12 100 66 176 191 51 189 37 165 73 182 143 84 14 28 95 129 61 24 186 225 249 127 109 250 0 189 218 154 194 218 142 141 34

Программа сама такая, может я чего напутал, так что камнями не кидаться (mod с большими числами не работает:( - я сделал как я понял):
Код: plaintext
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.
Private Sub Form_Load()

Dim StrString As String
Dim StrString1 As String
Dim chChar As String

Dim arr( 0  To  301 ) As Currency
Dim arrI( 0  To  301 ) As Double
Dim lngTemp as Integer

arr( 0 ) =  111 
For ii =  1  To  300 
    arr(ii) = CCur( 3  * CCur(arrI(ii -  1 )) ^  5 ) + CCur( 5  * CCur(arrI(ii -  1 )) ^  4 ) + CCur( 7  * CCur(arrI(ii -  1 )) ^  3 ) + CCur( 9  * CCur(arrI(ii -  1 )) ^  2 ) + CCur( 11  * CCur(arrI(ii -  1 ))) +  13 
    arrI(ii) = (CCur(arr(ii)) /  256  - Int(arr(ii) /  256 )) *  256 
Next

StrString = “ -виэпгб-ьжюъни-п-хещэнягэи-гявэнпеяижт-е-йихещэнягэи-вгжюъняижт-еьвгжскюияьт-гйеа-е-ягя-ли-зжуъ#-Хещэнягэ-гмэнкюия-хещэяизья!-згягэцд-тпжтияьт-щюазыеид-гязэцягог-яизьян!-згазэияацд-пей-щюазыее-хещэгпнает-гвэийижтияьт-ьизэияацб-зжуъгб#” 

For i =  1  To Len(StrString)
    lngTemp = Asc(Mid(StrString, i,  1 )) Xor arrI(i)
    StrString1 = StrString1 + Chr(lngTemp) ' + " "
Next

Text1.Text = StrString1
End Sub


Заметь, что твой стринг начинается с пробела, но я пробовал и с пробелом, и без... Белеберда.
...
Рейтинг: 0 / 0
Помогите!!!
    #32505529
Kleoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот и я пробовала и с пробелом и без. Все равно ерунда получилась :(

Но все равно спасибо.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]