Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Пример шифрования данных

Delphi , Синтаксис , Шифрование

Пример шифрования данных

Автор: Vit
WEB сайт: http://forum.vingrad.ru

procedure DoEncode(var Source: string; const Key: string);
asm
 Push ESI
 Push EDI
 Push EBX
 Or EAX,EAX
 Jz @Done
 Push EAX
 Push EDX
 Call UniqueString
 Pop EDX
 Pop EAX
 Mov EDI,[EAX]
 Or EDI,EDI
 Jz @Done
 Mov ECX,[EDI-4]
 Jecxz @Done
 Mov ESI,EDX
 Or ESI,ESI
 Jz @Done
 Mov EDX,[ESI-4]
 Dec EDX
 Js @Done
 Mov EBX,EDX
 Mov AH,DL
 Cld
 @L1:
 Test AH,8
 Jnz @L3
 Xor AH,1
 @L3:
 Not AH
 Ror AH,1
 Mov AL,[ESI+EBX]
 Xor AL,AH
 Xor AL,[EDI]
 Stosb
 Dec EBX
 Jns @L2
 Mov EBX,EDX
 @L2:
 Dec ECX
 Jnz @L1
 @Done:
 Pop EBX
 Pop EDI
 Pop ESI
end;

Комментарий от Chingachguk'a

Мне кажется, у этого алгоритма есть два недостатка:

1) Код, сильно зависимый от компилятора. Далеко не всегда регистр EAX будет указывать на ячейку с адресом Source, а регистр EDX - на пароль(Key). Но это мелочь.

2) Единственный байт гаммы(или ксорирующей последовательности), который меняется при шифровании - это длина пароля. Остальные символы пароля НИКАК НЕ ПЕРЕМЕШИВАЮТСЯ в ходе шифрования. Алгоритм шифрования примерно такой:

Len := Lengh(Key);
Index := Lengh(Key) - 1;
i := 1;
repeat
  Len := func1(Len);
  Source[i] := (Key[Index] xor Len) xor Source[i];
  dec(Index);
  if Index := 0 then
    Index := Lengh(Key) - 1;
until
  i < Lenght(Source);

Нетрудно видеть, что основной для тупого подбора является длина пароля. Пусть она равна 10. Очевидно, что 1-ый,11,21.. символы будут зашифрованы ОДИНАКОВЫМ значением Key[Index], но разными значениями Len. Казалось бы, Len для 1,11,21... будет разным, но это ерунда - ведь Len вычисляется однозначно на ЛЮБОМ шаге через реккурентный закон func1 !

И это - фатальный недостаток.

Статья Пример шифрования данных раздела Синтаксис Шифрование может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Шифрование ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
19.04.2024 23:03:48/0.037291049957275/2