Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Про глюки XOR алгоритма [D7, WinXP]


Страницы:   1 2 3

ares18 ©   (2007-08-27 18:54:00) 

Привет корифеям Delphi!
Кто нить сталкивался с таким косяком шифрования:
при использовании шифрования, в частности xor алгоритма
типа

procedure TForm1.code ;

var
 key, text, longkey, result: string;
 i: integer;
 toto, c: char;
begin
 key:=edit1.Text;
 longkey:=edit2.Text;
 text:=w;

 for i := 0 to (length(text) div length(key)) do
   longkey := longkey + key;
 for i := 1 to length(text) do
 begin
   toto := chr((ord(text[i]) xor ord(longkey[i]))); // XOR àëãîðèòì
   result := result + toto;
   q:= result;
 end;

 text:='';
end;

сперва шифруется и дешифруестся нормально (как строки так и мемо-поля),однако в какой то момент при шифровке или дешифровке теряется часть строки ( как в строках, так и в мемо). Возникает глюк случайно и вроде от пароля не зависит.


Anatoly Podgoretsky   (2007-09-01 09:46:00) [1]

Всегда говорили, нужен программист.


grisme   (2007-09-01 01:23:00) [2]

IOs   (01.09.07 00:07) [45]

будет конетс света :)


IOs   (2007-09-01 00:07:00) [3]

> Глюки в xor - это ладно, вот когда глюки в begin начнутся, вот это будет караул.

дя уж, это будет серверный лисыц...


palva   (2007-08-31 20:24:00) [4]

> Зачем же ты зашифрованое загоняешь в мемо поле
Подозреваю, что он не знает как положить текст в таблицу, не прогнав его через мемо-поле. Вот с этим у него проблемы.


ares18   (2007-08-31 20:00:00) [5]

Главная цель - защита db Paradox таблицы.
Мемо- нужно для ввода информации, закодирования её и хранение в ввиде таблицы.
А также мемо нужно для считывания раскодированного текста.


Anatoly Podgoretsky   (2007-08-31 18:41:00) [6]

> ares18  (31.08.2007 18:28:40)  [40]

Зачем же ты зашифрованое загоняешь в мемо поле, который является текст ориентированым.


Reindeer Moss Eater   (2007-08-31 18:32:00) [7]

сначала шифруй, затем кодируй и будет счастье в мемо поле


ares18   (2007-08-31 18:28:00) [8]


> Я думаю, прежде чем продолжить спор, может стоит спросить
> у автора, чего он хочет добиться. Что и от кого он хочет
> спрятать.


цель - зашифровать текст мемо-поле БД Paradox.
т.к. защита паролем (у Paradox) никакая.


Anatoly Podgoretsky   (2007-08-30 15:13:00) [9]

Автору не надо, он не владеет основами


Инс   (2007-08-30 13:57:00) [10]


> Зачем показывать в мемо код в Base64

Откуда я знаю. Автору надо. Произвольные двоичные данные в Memo так просто не отобразить по понятным причинам. Вот и предлагаю преобразовать в base64 или на крайняк в hex. Подходит ему это или нет, решит сам автор.


Anatoly Podgoretsky   (2007-08-30 13:52:00) [11]

> Инс  (30.08.2007 13:43:36)  [36]

Это пройдет.
Зачем показывать в мемо код в Base64


Инс   (2007-08-30 13:43:00) [12]


> Не связаные вещи

Бррр, не научился я еще разгадывать ваши ребусы...


Anatoly Podgoretsky   (2007-08-30 13:37:00) [13]

Не связаные вещи


Инс   (2007-08-30 13:32:00) [14]

Ну и ладно. Какая разница как это назвать. Что-то я не понимаю смысл [30], если в [28] я сказал то же самое.


Anatoly Podgoretsky   (2007-08-30 13:17:00) [15]


> Разумеется. Это именно приведение к виду, который можно
> отобразить как текст.

Это и есть передача по каналу
двочные коды -> текстовый приемник.


Инс   (2007-08-30 12:57:00) [16]


> Если не предполагается использование текстовых функций,
> например передача по каналу, то лишнее.

Разумеется. Это именно приведение к виду, который можно отобразить как текст.

> на самом деле проблема со всеми символами, с кодами менее
> 32 - не печатные символы.

Это еще и от шрифта зависит. Для некоторых и русские буквы непечатные символы.


Anatoly Podgoretsky   (2007-08-30 12:53:00) [17]


> Ну да. В частности, бессмысленно показывать шифровку в Memo-
> поле. Может быть, хвост шифровки вовсе не исчез, просто
> Memo-поле показывает текст только до нулевого байта.

Ну да, обычная текстовая функция, обрезка по нулевому символу, но это ему еще очень повезло, на самом деле проблема со всеми символами, с кодами менее 32 - не печатные символы.


Anatoly Podgoretsky   (2007-08-30 12:52:00) [18]

Инс ©   (30.08.07 12:33) [28]
Если не предполагается использование текстовых функций, например передача по каналу, то лишнее.


palva   (2007-08-30 12:33:00) [19]

Anatoly Podgoretsky ©   (30.08.07 12:21) [27]
Ну да. В частности, бессмысленно показывать шифровку в Memo-поле. Может быть, хвост шифровки вовсе не исчез, просто Memo-поле показывает текст только до нулевого байта.


Инс   (2007-08-30 12:33:00) [20]

Автору:
Если все-таки очень хочется вывести как текст, можно преобразовать в base64.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо