реклама на сайте
подробности

 
 
> Алгоритм шифрования, где найти реализацию?
Ivan Kuznetzov
сообщение Mar 4 2010, 15:44
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Подскажите пожалуйста алгоритм шифрования/дешифрования потоковых данных. (есть массив из n байт, его надо зашифровать и расшифровывать на приеме, зная ключ), смотрел в сторону xxtea, работает только с long.
может тупо биты в байте переставлять, наподобие DES ? rolleyes.gif

P.S.
может у кого есть xxtea, который бы с потоком работал?


--------------------
Разработчик
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
V_G
сообщение Mar 11 2010, 12:59
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Про собственно шифрование ничего не скажу. А вот про переворот вроде понятно.
На Си существует следующий порядок размещения многобайтных переменных в памяти: младший байт - по младшему адресу.
На Паскале (и в Дельфях) - похоже, наоборот: первыми (по младшим адресам) размещены старшие байты.

Чтобы не мучить МК, перепишите паскалевский код на Си

Сообщение отредактировал V_G - Mar 11 2010, 13:02
Go to the top of the page
 
+Quote Post
Ivan Kuznetzov
сообщение Mar 12 2010, 05:26
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 307
Регистрация: 6-02-08
Из: Россия, Екатеринбург
Пользователь №: 34 798



Цитата(V_G @ Mar 11 2010, 17:59) *
Про собственно шифрование ничего не скажу. А вот про переворот вроде понятно.
На Си существует следующий порядок размещения многобайтных переменных в памяти: младший байт - по младшему адресу.
На Паскале (и в Дельфях) - похоже, наоборот: первыми (по младшим адресам) размещены старшие байты.

Чтобы не мучить МК, перепишите паскалевский код на Си

кароче получилось! Сначала поменял декодирование массива char-ов на массив long. Декодирую, отсылаю - пашет! пошел дальше: меняю размер декодируемого блока - (от 32-х long до 128 long) все равно пашет! тоесть для XTEA пофигу каким блоком декодировать. Далее, дай, думаю, вернусь к массиву char - сделал - РАБОТАЕТ! так и не понял в чем прикол был... smile3046.gif Коды на дельфи и на Си, кстати полностью идентичны...

Еще вопрос к спецам по Дельфи: как этот код оптимизировать? если оперирую с дин. массивом data - ничего не пашет, приходится перед кодированием забивать из Buf в data, а затем обратно в Buf из data и Buf уже в файл. Если проделываю BlockRead или BlockWrite над массивом data - прога вываливается..

Код
type TTeaData = array of Longword;

var
Buf: array[0..511] of Longword;
data: TTeaData;


Код
        BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
          for i := 0 to (SizeOf(Buf) div 4) - 1 do
          begin
          data[i]:= Buf[i];
          end;

          if algo=0 then XTeaBlockEncrypt(data, MasterKey);
          if algo=1 then XXTeaEncrypt(data, MasterKey);

        for i := 0 to (SizeOf(Buf) div 4) - 1 do
          begin
          Buf[i]:= data[i];
          end;

        BlockWrite(ToF, Buf, NumRead, NumWritten);


Сообщение отредактировал Ivan Kuznetzov - Mar 12 2010, 05:49


--------------------
Разработчик
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 04:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.0138 секунд с 7
ELECTRONIX ©2004-2016