rc4

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

rc4

Сообщение novo » 13.11.2011 00:44:21

Ребята если есть у кого нибудь реализация RC4
скиньте пожалуйста
novo
новенький
 
Сообщения: 43
Зарегистрирован: 31.07.2011 21:35:10

Re: rc4

Сообщение Maxizar » 13.11.2011 09:39:01

ОМГ...
1. http://ru.wikipedia.org/wiki/RC4
2. в DRKB в разделе: Математика и алгоритмы -> Контрольные суммы и шифры -> Шифрование -> RC4

PS. Но это если я правильно вас понял...
Maxizar
постоялец
 
Сообщения: 385
Зарегистрирован: 20.03.2010 19:48:14

Re: rc4

Сообщение novo » 13.11.2011 11:45:04

Прошу прощения, зря воду баламутил

Код: Выделить всё

type
   TByteArray = array of Byte;


procedure Move(Destination, Source: Pointer; dLength:Cardinal);
begin
  CopyMemory(Destination, Source, dLength);
end;

function RC4(Expression, Password:string):string;
var
  RB:         array[0..255] of integer;
  X, Y, Z:    LongInt;
  Key:        TByteArray;
  ByteArray:  TByteArray;
  Temp:       Byte;
begin
  if Length(Password) = 0 then
    Exit;
  if Length(Expression) = 0 then
    Exit;
  if Length(Password) > 256 then
  begin
    SetLength(Key, 256);
    Move(@Key[0], @Password[1], 256)
  end
  else
  begin
    SetLength(Key, Length(Password));
    Move(@Key[0], @Password[1], Length(Password));
  end;
  for X := 0 to 255 do
    RB[X] := X;
  X := 0;
  Y := 0;
  Z := 0;
  for X := 0 to 255 do
  begin
    Y := (Y + RB[X] + Key[X mod Length(Password)]) mod 256;
    Temp := RB[X];
    RB[X] := RB[Y];
    RB[Y] := Temp;
  end;
  X := 0;
  Y := 0;
  Z := 0;
  SetLength(ByteArray, Length(Expression));
  Move(@ByteArray[0], @Expression[1], Length(Expression));
  for X := 0 to Length(Expression) - 1 do
  begin
    Y := (Y + 1) mod 256;
    Z := (Z + RB[Y]) mod 256;
    Temp := RB[Y];
    RB[Y] := RB[Z];
    RB[Z] := Temp;
    ByteArray[X] := ByteArray[X] xor (RB[(RB[Y] + RB[Z]) mod 256]);
  end;
  SetLength(Result, Length(Expression));
  Move(@Result[1], @ByteArray[0], Length(Expression));
end;                         

novo
новенький
 
Сообщения: 43
Зарегистрирован: 31.07.2011 21:35:10


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

Рейтинг@Mail.ru