![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Про глюки XOR алгоритма [D7, WinXP]
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.