2020 [11] Аутентификация в2
Система аутентификации шифрует пароли особым образом, показанном в виде функции scrambler на языке C++. Зная алгоритм шифрования, вычислите пароль. Фрагмент кода указан ниже.С++ |
int swap(int value, int start, int len)
{
len = len % (sizeof(value) * 8);
start = start % (sizeof(value) * 8);
int bits = (INT_MAX >> ((sizeof(value) * 8) - len - 1));
bits = bits << start;
int buf = (value >> len) & bits;
int res = value & bits;
res = res << len;
res |= buf;
int rest = value & ~bits;
rest = rest & ~(bits << len);
return rest | res;
}
//////////////////////////////////////////////////////
void scrambler(int keyword)
{
int res = keyword;
for (int i = 1; i < 16; i = i * 2)
{
for (int j = 0; j < 32 - i; j = j + i * 2)
res = swap(res, j, i);
}
if (res == -1268496634)
std::cout << "Password is correct\n";
else
std::cout << "Password is wrong\n";
}
|