![]() |
|
|
![]()
|
|
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
при этом если его еще раз выполнить, все должно вернуться как было. Мне нужно это cделать на дельфи.
Есть кусок кода, но он неправильно работает, т.е. нет обратного хода
RandBuffer - это массив случайных чисел Buffer - это массив байтов, которые надо перемешать все хорошо, да только если его еще раз повторить, то мы не вернемся к прежнему состоянию мне сгодится любая инфа, исходники, лишь бы работало этот алгоритм могу сменить на другой, работающий Это сообщение отредактировал(а) Monty - 25.5.2003, 22:50 -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Приветствую!
А что это такое:
|
|||
|
||||
| neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Это был я. Извинияюсь.
Я имею в виду: какой размерности массив? -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
-------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Monty |
|
||||||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Это моя опечатка
т.е. что то наподобия ассемблерной команды XCHG Это сообщение отредактировал(а) Monty - 25.5.2003, 23:00 -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
||||||
|
|||||||
| Unregistered |
|
|||
|
Unregistered |
Команда XCHG не менияет местами два значения в памяти.
Вопрос: а массив случайных чисел у тебя известен при обратной кодировке? |
|||
|
||||
| Master |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1530 Регистрация: 13.5.2003 Где: Mother Russia Репутация: нет Всего: 10 |
А я на Qbasic'е в школьные годы написал программы, которая берет файл, переворачивает 255' ой символ в 0'ой, потом переворачивает 127'ой в 0'ой а 255'ый в 128'ой и потом ещё раз только с 63'им, и так мазаются все символы, кодирует файлы, потом прогоняеш еще раз и все востонавливается
-------------------- Вавилон, Вавилон Что ты построил, что разрушил? Вавилон, Вавилон Плавятся души дьявольским огнем. |
|||
|
||||
| neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
А почему бы в таком случае не сделать просто:
A[i]=not A[i]; И все. Потом прогоняем второй раз и все встает на свои места. Можно еще так: xor si, si mov cx, n next: mov al, a[si] ror al, 1 mov a[si], al loop next -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
| Chingachguk |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: 1 Всего: 18 |
Если имеется в виду циклический сдвиг нулевого элемента массива, то можно и так:
А если имеется в виду сдвиг n первых элементов массива, то:
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||||
|
|||||||
| Chingachguk |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: 1 Всего: 18 |
Ассемблерный код будет гораздо компактнее и быстрее, Но ! - не всегда: Допустим, используем стандартную технику(32-х битный код):
Но временные замеры покажут, что на процессорах Pentium команда xchg будет дико тормозить (проигрыш 2-3 раза) и нужно ее бить на части (а-ля риск-процессор). -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||
|
|||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Спасибо Chingachguk будем оптимизировать Хочется обьяснить... тот кусок кода который я привел меняет местами байты (перемешивает), они уже зашифрованы Например: 243, 118, 96, 8, 71, 12, 203, 25 ,стало => 96, 12, 118, 203, 71, 243, 25, 8 PS сколько ответов, просто приятно -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Почти в точку PS Сразу не понял Это сообщение отредактировал(а) Monty - 26.5.2003, 14:09 -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Одно ясно, мой алгоритм перемешивания не обратим
Кто может дать полезную ссылку? для ВАРИАНТА №3 DES тоже умеет перемешивать?! только он перемешивает биты А где почитать незнаю -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
| neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Вот послушай:
1) берем массив и делаем ротацию н-1 раз с первого до последнего символа 2) ротацию н-2 раз со второго символа 3) и так далее Очень легко восстановить обратно, а чтобы запаристей было можно рандомизировать количество ротаций на каждой стадии и запомнить ети числа. После чего набор таких чисел будет паролем для расшифровки. -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
| Monty |
|
|||
![]() Advanced Lamer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3511 Регистрация: 3.4.2003 Где: Гваделупа Репутация: нет Всего: 27 |
Спасибо neutrino, я все ни как ненайду время, чтоб на большом листе нарисовать как мой алг. перемешивает, чтоб написать обратный ему алг.
ЗЫ все уже зашифрованно ;) -------------------- ... О, вещая моя печаль, О, тихая моя свобода И неживого небосвода Всегда смеющийся хрусталь! |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |