Инструкция
1
Приведенный далее генератор ключей является, по сути, шифратором. Программа потребует от пользователя ввести имя и фамилию, затем переведет каждый введенный символ в числовой код и преобразует его по определенному закону. Пользователю на экран будет выведен ключ, состоящий из такого же количества символов, что и фамилия. Минус данного алгоритма в том, что стандартизированное число символов в ключе можно получить только при стандартизированных входных данных (ip адрес, значение из реестра Windows).
2
Запросите фамилию, имя и отчество пользователя. При этом, дабы сделать выходной ключ удобнее, использоваться будет лишь фамилия (введенный код будет считан до первого пробела, остальное уйдет в буфер, который при необходимости нужно будет очистить). Данные будут записаны в массив char A[30]. При этом введите дополнительный счетчик по i, чтобы запомнить, сколько символов было введено.
printf("Введите Фамилию и инициалы. [Васильев А.И.]\n");
while(A[i-1]!=' ')
{scanf("%c", &A[i]); i++;}
3
Преобразуйте фамилию. Несмотря на то, что массив имеет формат char, вы можете проводить с ним любые математические операции, т.к. каждый символ в C имеет свой числовой код. Поэтому, создайте цикл от нуля до сохраненного количества символов i. В теле цикла запишите преобразование для элемента A[j], после чего выведите его на экран.
for(int j=0; j < i-1; j++)
{A[j]=A[j]+8+(j*3);
printf("%d ", A[j]);}
Это и будет генератор уникального пользовательского ключа, состоящего из чисел.
4
Проверка валидности будет осуществляться сравнением получившегося и данного ключей. Для авторизации пользователь вводит свою фамилию и выданный вашим генератором код. Внутри программы установлен аналогичный генератор, который преобразует фамилию по тому же закону, а потом – посимвольно сравнивает введенные значения с тем, что должно было получиться.