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; |