Архив задач

2013 [9-10] Подбор пароля

В результате анализа подсистемы защиты удалось выяснить, что подтверждение имени пользователя,работающего за компьютером, выполняется с помощью паролей. При проверке введенный пароль подвергается преобразованию при помощи функции,исходный код которой приведен ниже (см. табл.). Для принятия решения о том верен ли пароль, результат работы функции сверяется с эталонами, хранимыми в базе данных. Приведите пароль, который пройдет проверку описанную проверку, если известно, что пароль «БЕЗОПАСНОСТЬ» верен.


С

Pascal

int HASH(char *text)

{

  int k=0, H;

  char temp[4];

  for (int i=0; (i<strlen(text))&&(k<4); i++)

    if ((i+1)%2==0) {temp[k]=text[i]; k++;}

  if (k<4) for(;k<4;k++) temp[k]='D';

  H = ((temp[0]+temp[3])&255)*256;

  H += (temp[1]+temp[2])&255;

return H;

}

function HASH (text: string):Integer;

var

 i, k, HA : Integer;

 temp: array [1..4] of char;

begin

 k := 1; i := 1;

 while ((i <= Length (text)) and (k <= 4)) do

 begin

   if (i mod 2 = 0) then

   begin

     temp[k] := text[i]; k := k+1;

   end;

   i := i+1;

 end;

 if (k <= 4) then

 begin

   while k <= 4 do

   begin

     temp[k] := 'D';k := k+1;

   end;

 end;

 HA := ((ord(temp[1])+ord(temp[4])) and 255)*256;

 HA := HA + ((ord(temp[2])+ord(temp[3])) and 255);

HASH := HA;

end;