Страница: 1 |
Страница: 1 |
Вопрос: Алгоритм кодирования. Нужна оптимизация.
Добавлено: 07.10.09 00:05
Автор вопроса: AWP | Web-сайт:
Написал алгоритмик. Нужна помощь по оптимизации скорости.
''' Функция кодирования в обе стороны EnCodeTStrong
''' str - Строка кодирования
''' K - Коэфицент (0 - 1)
Dim ln As Long
Dim N As Long
Dim D As Long
Dim S As String
Dim M As Long
Dim KM As Double
ln = Len(str)
For N = 1 To ln Step 1
' 100 проходов с разной частотой
KM = Sin(N) * 128
For M = 2 To 101
KM = KM + Cos(N / M) * 128
Next
D = Asc(Mid$(str, N, 1)) + Int(KM) * K
' Выполняем если переменная выходит за рамки (0-255)
If D > 255 Then
D = D - 256
Else
If D < 0 Then D = D + 256
End If
S = S & Chr$(D)
Next N
EnCodeTStrong = S
End Function
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
Илья
Вопросов: 1
Ответов: 48
Профиль | | #1
Добавлено: 07.10.09 06:26
Что ты ей кодируешь? Текст?
Функция не работает, в месте
происходит переполнение, D не может быть больше 255, а при тексте = "Текст", D = 12821! Надо бы алгоритм перебрать...
Номер ответа: 2
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #2
Добавлено: 07.10.09 07:43
Пожалуйста, скажи мне что это не очередной алгоритм шифрования текста!
Номер ответа: 3
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #3
Добавлено: 07.10.09 12:14
Artyom Очередной.
Илья K должен быть меньше 0.01
или есть вариант сделать в цикле
Номер ответа: 4
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #4
Добавлено: 07.10.09 12:24
По суте нужно передавать строку в закодированном виде, без ключа.
md5 отпадает: Не раскодировать, долгий.
Можно тупо сжимать текст(Хаффманом или ЛЗВ), но не думаю, что это будет быстрее чем закодировать.
Номер ответа: 5
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #5
Добавлено: 07.10.09 12:29
без ключа
Зачем тогда ее кодировать? Что мешает передавать в чистом виде?
Номер ответа: 6
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #6
Добавлено: 07.10.09 12:34
Мешает раскодировать неизвестный алгоритм кодирования, поэтому ключ не обязателен.
Я конечно понимаю, что можно вытащить функцию или декомпельнуть и т.д., но если захотят взломать - взломаю.
А передавать в чистом виде, ну это совсем не безопасно.
Вопрос остался открыт:
Нужна помощь по оптимизации скорости.
Номер ответа: 7
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #7
Добавлено: 07.10.09 12:55
Сделай XOR 10
ВОзьми любое симметричное шифрование и забей ключ в коде
Номер ответа: 8
Автор ответа:
Илья
Вопросов: 1
Ответов: 48
Профиль | | #8
Добавлено: 08.10.09 06:51
Работает только в 1 направлении, а вообще, даже если оптимизировать код зашифровки\расшифровки, сильного отличия в скорости не будет...
Проект\СвойстваПроекта\Компиляция\Оптимизировать скорость
Номер ответа: 9
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #9
Добавлено: 08.10.09 15:34
Изменения действительно будут смешные.
Номер ответа: 10
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #10
Добавлено: 08.10.09 16:10
ну я с первоначального вида на 30 процентов по скорости увеличил.
Работает в обе стороны, второй раз нужно К ставить -0.01
Номер ответа: 11
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #11
Добавлено: 08.10.09 17:30
Изменения действительно будут смешные.
+1 Эта вася была вожна раньше, щас ставь хоть P-Code- без разницы скорость.
Номер ответа: 12
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #12
Добавлено: 08.10.09 22:07
Нет, бывают задачи, которые в нативе быстрее выполняются, но я в последнее время всё в пикод компилю.
Номер ответа: 13
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #13
Добавлено: 08.10.09 23:09
Кстати VBD, сильно занят?
У меня тут алго мизерный, рисует огонь сэтпикселом прям на пикчербоксе, я его в абауте давно юзаю.
Вот он, гад, в нативе намного шустрее рисует, чем в пикоде.
Ты с графикой опыт имеешь, может покажешь, что сделать, чтоб кадр в памяти нарисовать, а потом одной апишкой на пикчер бросить, думаю так в разы быстрее будет.
Номер ответа: 14
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #14
Добавлено: 09.10.09 01:59
Smith, в аудике так рисуются кадры визуализации.
Кстати я тебя вопрос спросил там http://vbnet.ru/forum/show.aspx?id=197165
Номер ответа: 15
Автор ответа:
VβÐUηìt
Вопросов: 246
Ответов: 3333
Web-сайт:
Профиль | | #15
Добавлено: 13.10.09 20:26
В памяти? Ну не знаю, я с памятью не работал. Другое дело, если огонь маленький, ты можешь отрисовывать, например, каждый десятый кадр, а потом AlphaBlend'ить его. Разницы мало какой будет, а вот быстродействие увелчится.
PS. И вообще, если что, в XQR2 вся графика, кроме прозрачных переходов, реализована стандартными функциями: Line, Print, PSet. И все пучком