Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Вниз___XOR___ Найти похожие ветки
← →
p_sA[11] © (2004-04-30 16:25) [0]Я думаю все(ну или многие) знакомы с алгоритмом шифрования
основаном на XORe. Но проблема в том, что при XORe код символа может быть и 13, и 8, и 0, или еще каким нибудь. Может кто-нибудь подскажет идею, чтоб избежать этого. В принцыпе я знаю как это сделать, но при моем решении размер закодированого файла будет увеличиваться вдвое. Хотелось бы какое-нибудь оптимальное решение. Конечно можно изначально прибавлять ко всем кодам символов после XORa например 20, но тогда код может попасть за пределы кодовой таблицы. В общем если кто, что подскажет по этой теме буду благодарен.
← →
Fay © (2004-04-30 16:27) [1]Зашифорваная инфа должна быть читаемой? Можешь закодировать её в Base64
← →
Reindeer Moss Eater © (2004-04-30 16:27) [2]Но проблема в том, что при XORe код символа может быть и 13, и 8, и 0, или еще каким нибудь
И как называется эта проблема?
← →
WebErr © (2004-04-30 16:29) [3]
Buf := Value and $1F
Result := Value xor Some;
Value := Value and not SomeType($1F);
Result := Result or Buf;
← →
Андрей Сенченко © (2004-04-30 16:31) [4]Reindeer Moss Eater © (30.04.04 16:27) [2]
По всей видимости имеется в виду, что длина ( кодичество символов ) числел, полученных перекодировкой различна и если их писать в строку без разделителей - при обратной перекодировке неясно будет от чего плясать
ИМХО
← →
Reindeer Moss Eater © (2004-04-30 16:33) [5]При ксоре длина криптотекста равна исходной длине сообщения.
← →
WebErr © (2004-04-30 16:33) [6]
> Reindeer Moss Eater © (30.04.04 16:33) [5]
Иногда можно и так! :))))
← →
Anatoly Podgoretsky © (2004-04-30 16:34) [7]Это вообще не является проблемой, зашифрованый файл не является текстовым файлом!
← →
Fay © (2004-04-30 16:37) [8]2Андрей Сенченко © (30.04.04 16:31) [4]
Вы не могли бы перефразировать ответ - не очень (совсем) понятно, что Вы хотели сказать...
← →
WebErr © (2004-04-30 16:51) [9]
> Buf := Value and $1F
> Result := Value xor Some;
> Value := Value and not SomeType($1F);
> Result := Result or Buf;
Ой, в 3-й строке:
Result := Result and not SomeType($1F);
Ну, в общем и так понятно! 8)
← →
p_sA[11] © (2004-04-30 16:56) [10]2ALL: Извините, конечно, но конкретного ответа я так и не услышал. Неужели не ясна проблема? Раз вы считаете, что проблемы нет, то пожалуста запишите в файл код бакспейса(8) или интера, и каким образом востанавливать закодированую информацию?! Ведь текст уменьшится в размерах и при чтении файла и раскодировке получитяс непонятно что. В общем надеюсь теперь будет всем понятно в чем проблема.
2WebErr: если не сложно объясни подробнее, а то я чего-то недопонял... :(
← →
Reindeer Moss Eater © (2004-04-30 16:57) [11]Да ну?
Так уж и уменьшится?
← →
Reindeer Moss Eater © (2004-04-30 17:00) [12]Шифрованный текст перестает быть текстом а становится двоичными данными.
Либо разрастается в размерах еси представлен в b64 формате.
Ждем чуда?
← →
p_sA[11] © (2004-04-30 17:02) [13]2Reindeer Moss Eater: да уменьшится...
ну а как же иначе? А как по твоему прочитать код бекспейса из файла?
← →
WebErr © (2004-04-30 17:02) [14]Вообще всё неправильно:
я зачем-то сохранял первые пять бит!
Надо любой другой, кроме этих пяти - тормоз я! :(
Всё точно так же с буффером, как я писал.
← →
Reindeer Moss Eater © (2004-04-30 17:03) [15]Это байт. Такой же как и все остальные.
Ни к какому уменьшению он не приводит.
← →
Anatoly Podgoretsky © (2004-04-30 17:03) [16]p_sA[11] © (30.04.04 17:02) [13]
Read(F, Ch)
← →
Reindeer Moss Eater © (2004-04-30 17:08) [17]2Reindeer Moss Eater: да уменьшится...
Интересно, а каков размер файла, сосотоящего из ста бэкспейсов.
А еще интереснее - какова длина его "текста"
:)
← →
WebErr © (2004-04-30 17:08) [18]Типа:
function Convert(Value: Char):
begin
Buf := Value and $40; // Сохраняем бит
Result := XorThis(Value); // Ваше преобразование
Result := Value and not Char($40); // Очищаем бит
Result := Result and Buf; // Вспоминаем бит
end;
Изменяются только 7 из 8-ми бит.
← →
WebErr © (2004-04-30 17:12) [19]1. В принципе Buf - локальная переменная в Convert.
function Convert(Value: Char):
var
Buf: Char;
begin
...
2. Можно сохранять любой бит от 5-го до 7-го, вместо $40 писать 1 shl N, где 5 <= N <= 7.
← →
WebErr © (2004-04-30 17:13) [20]Кстати $40 - это 6-й бит. ;)
← →
Fay © (2004-04-30 17:21) [21]А не 7-й?
← →
WebErr © (2004-04-30 17:25) [22]Нет, если считать с 0-го.
← →
Григорьев Антон (2004-04-30 17:30) [23]
> Reindeer Moss Eater © (30.04.04 17:08) [17]
>
> Интересно, а каков размер файла, сосотоящего из ста бэкспейсов.
> А еще интереснее - какова длина его "текста"
>
> :)
А вы вообще в курсе, что файлы бывают не только текстовые? И что бинарным файлам по фигу, где бэкспейс, где enter, где tab и т.д.?
← →
Reindeer Moss Eater © (2004-04-30 17:32) [24]Ой, спасибо. Не знал что бывают нетекстовые.
← →
Fay © (2004-04-30 17:34) [25]2Григорьев Антон (30.04.04 17:30) [23]
"Текстовость" файла - это условность. Все файлы "бинарные".
← →
WebErr © (2004-04-30 17:34) [26]
> function Convert(Value: Char):
Лох я сегодня - возвращаемый тип: Char.
← →
Reindeer Moss Eater © (2004-04-30 17:35) [27]И что бинарным файлам по фигу, где бэкспейс, где enter, где tab и т.д.?
Мне мама в детстве рассказывала страшную тайну, что не только бинарным файлам по фигу где там у них что, но и текстовым файлам тоже.
И только программам, ориентированным на визуализацию этих файлов, не вполне пофик на разлтчные байты
Представляешь ?
← →
WebErr © (2004-04-30 17:38) [28]
> Reindeer Moss Eater © (30.04.04 17:35) [27]
Странная у Вас была мама.
Мне такое в детстве даже днём не рассказывали! :))))
← →
Fay © (2004-04-30 17:52) [29]2WebErr © (30.04.04 17:38) [28]
Просто дети не всегда внимательно слушают родителей 8)
← →
WebErr © (2004-04-30 18:02) [30]
> Fay © (30.04.04 17:52) [29]
Ужас! 8)
Это всем на данном форуме в раннем детстве родители про бинарные файлы рассказывали?!
Кошмар! 8)
Только так и становятся программерами! :))))
← →
Fay © (2004-04-30 18:06) [31]WebErr © (30.04.04 18:02) [30]
Я хотел сказать, что большинству нормальных людей ещё в детстве объяснили такую вещь - в приличном обществе за заявления типа "Странная у Вас была мама" могут дать по морде.
← →
WebErr © (2004-04-30 18:11) [32]
> Fay © (30.04.04 18:06) [31]
А вот смайлик, в конце Вашего сообщения я бы поставил!
К тому же, как говаривал Тимохов (с): "Настоящий программист шутки понимает!"
← →
Fay © (2004-04-30 18:17) [33]Я писал со всей серьёзностью, поэтому смайлик был неуместен.
← →
Игорь Шевченко © (2004-04-30 19:27) [34]WebErr © (30.04.04 18:11)
У меня просьба: обрати внимание на правила, где написано: "Просто потрепаться вы можете в соответсвующей конференции".
Считай это официальным предупреждением.
← →
Anatoly Podgoretsky © (2004-04-30 19:33) [35]WebErr © (30.04.04 17:13) [20]
А не перавыйЮ если считать с нуля
← →
Anatoly Podgoretsky © (2004-04-30 19:34) [36]Fay © (30.04.04 17:34) [25]
Бинарные файлы тоже условность, все они многобитовые.
← →
Anatoly Podgoretsky © (2004-04-30 19:39) [37]WebErr © (30.04.04 18:02) [30]
А что ты тогда на сайте программистов делаешь?
← →
Fay © (2004-04-30 20:54) [38]2Anatoly Podgoretsky © (30.04.04 19:34) [36]
Не подскажете, как прочитать 123 бит (ровно) из файла?
← →
SammIk © (2004-04-30 21:02) [39]2 [36]
Читаешь 16 баит и 5 бит зануляешь, а зачем вообще это?
← →
Anatoly Podgoretsky © (2004-04-30 21:10) [40]Fay © (30.04.04 20:54) [38]
Чего скупиться, читай с запасом, все равно минимальная единица кластер и может достигать 64кбАЙТ
Страницы: 1 2 вся ветка
Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.04 c