Пользователь использует компьютерную систему, в которой по введенному паролю вычисляется и хранится хеш-значение. хэш-значение пароля вычисляется функцией gethash (см. листинг).

политика безопасности системы требует, чтобы пароль содержал не более шести символов и состоял только из букв латинского алфавита в верхнем регистре в кодировке ascii.

/* входные параметры:

pwd – строка пароля

hash - переменная, в которой будет содержаться хеш

возвращаемое значение:

false – пароль не соотвествует правилам системы;

true - пароль соотвествует правилам системы;

int hash – хеш пароля (целое число)

*/

bool gethash( char const *pwd, int *hash ) {

// длина пароля

int n = strlen(pwd);

// проверка пароля на длину

if(n > 6)

return false;

// проверка пароля на содержание только букв верхнего регистра

for(int i = 0; i < n; i++)

if( pwd[i] < 'a' || pwd[i] > 'z')

return false;

//вычисление хеша

*hash = 0;

for(int i = 0; i < n; i++)

*hash += (pwd[i] - 'a' + 1);

return true;

}

у какого пароля хеш-значение будет меньше 65?

Katerinkacat Katerinkacat    3   05.10.2019 11:00    1

Другие вопросы по теме Информатика