Страница: 1 |
Вопрос: Алгоритм кодирования. Нужна оптимизация. | Добавлено: 07.10.09 00:05 |
Автор вопроса: ![]() |
Написал алгоритмик. Нужна помощь по оптимизации скорости.
Function EnCodeTStrong(str As String, K As Single) As String
''' Функция кодирования в обе стороны 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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #2 | Добавлено: 07.10.09 07:43 |
Пожалуйста, скажи мне что это не очередной алгоритм шифрования текста! |
Номер ответа: 3 Автор ответа: ![]() ![]() ICQ: 345685652 Вопросов: 96 Ответов: 1212 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 07.10.09 12:14 |
Artyom Очередной. ![]() Илья K должен быть меньше 0.01 или есть вариант сделать в цикле
|
Номер ответа: 4 Автор ответа: ![]() ![]() ICQ: 345685652 Вопросов: 96 Ответов: 1212 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 07.10.09 12:24 |
По суте нужно передавать строку в закодированном виде, без ключа.
md5 отпадает: Не раскодировать, долгий. Можно тупо сжимать текст(Хаффманом или ЛЗВ), но не думаю, что это будет быстрее чем закодировать. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #5 | Добавлено: 07.10.09 12:29 |
AWP пишет:
без ключа Зачем тогда ее кодировать? Что мешает передавать в чистом виде? |
Номер ответа: 6 Автор ответа: ![]() ![]() ICQ: 345685652 Вопросов: 96 Ответов: 1212 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 07.10.09 12:34 |
Мешает раскодировать неизвестный алгоритм кодирования, поэтому ключ не обязателен.
Я конечно понимаю, что можно вытащить функцию или декомпельнуть и т.д., но если захотят взломать - взломаю. А передавать в чистом виде, ну это совсем не безопасно. Вопрос остался открыт: Нужна помощь по оптимизации скорости. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #7 | Добавлено: 07.10.09 12:55 |
Сделай XOR 10
ВОзьми любое симметричное шифрование и забей ключ в коде |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 48 |
Профиль | Цитата | #8 | Добавлено: 08.10.09 06:51 |
Илья K должен быть меньше 0.01
Работает только в 1 направлении, а вообще, даже если оптимизировать код зашифровки\расшифровки, сильного отличия в скорости не будет... Нужна помощь по оптимизации скорости.
Проект\СвойстваПроекта\Компиляция\Оптимизировать скорость ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #9 | Добавлено: 08.10.09 15:34 |
Изменения действительно будут смешные. |
Номер ответа: 10 Автор ответа: ![]() ![]() ICQ: 345685652 Вопросов: 96 Ответов: 1212 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 08.10.09 16:10 |
ну я с первоначального вида на 30 процентов по скорости увеличил.
Работает в обе стороны, второй раз нужно К ставить -0.01 |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 08.10.09 17:30 |
Smith пишет:
Изменения действительно будут смешные. +1 Эта вася была вожна раньше, щас ставь хоть P-Code- без разницы скорость. |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #12 | Добавлено: 08.10.09 22:07 |
Нет, бывают задачи, которые в нативе быстрее выполняются, но я в последнее время всё в пикод компилю. |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: adamis@list.ru Вопросов: 153 Ответов: 3632 |
Профиль | Цитата | #13 | Добавлено: 08.10.09 23:09 |
Кстати VBD, сильно занят?
У меня тут алго мизерный, рисует огонь сэтпикселом прям на пикчербоксе, я его в абауте давно юзаю. Вот он, гад, в нативе намного шустрее рисует, чем в пикоде. Ты с графикой опыт имеешь, может покажешь, что сделать, чтоб кадр в памяти нарисовать, а потом одной апишкой на пикчер бросить, думаю так в разы быстрее будет. |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 87 Ответов: 2795 |
Web-сайт: Профиль | Цитата | #14 | Добавлено: 09.10.09 01:59 |
Smith, в аудике так рисуются кадры визуализации.
Кстати я тебя вопрос спросил там http://vbnet.ru/forum/show.aspx?id=197165 ![]() |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 246 Ответов: 3333 |
Web-сайт: Профиль | Цитата | #15 | Добавлено: 13.10.09 20:26 |
Ты с графикой опыт имеешь, может покажешь, что сделать, чтоб кадр в памяти нарисовать, а потом одной апишкой на пикчер бросить, думаю так в разы быстрее будет.
В памяти? Ну не знаю, я с памятью не работал. Другое дело, если огонь маленький, ты можешь отрисовывать, например, каждый десятый кадр, а потом AlphaBlend'ить его. Разницы мало какой будет, а вот быстродействие увелчится. PS. И вообще, если что, в XQR2 вся графика, кроме прозрачных переходов, реализована стандартными функциями: Line, Print, PSet. И все пучком ![]() |
Страница: 1 |
|