Простенький генератор паролей - C (СИ)
Формулировка задачи:
#include <stdio.h> int maxint,b,a,i,j,k; maxint = 32767; b=62; a=0; int i; int p; char u[10]; int main() { printf ("Генератор паролей"); char gen[64] = {'A','E','I','J','O','U','B','C','D','F','G','H','K','L','M','N','P','Q','R','S','T','V','W','X','Y','Z','a','e','i','j','o','u','b','c','d','f','g','h','k','l','m','n','p','q','r','s','t','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0'}; for (i=1;i=10;i++) { for (j=0;j=7;i++) { p = (rand() / (maxint/ (b-a) )) + a; strcpy(u[j], gen[p]); } printf ("Password:"); for (k=0;k=7;k++) { printf ("%s",u[k]); } printf ("\n"); } }
Решение задачи: «Простенький генератор паролей»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> char * make_password(char * buf, size_t size){ static const char symbols[] = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz_0123456789"; char * p = buf; while ( size-- ) *p++ = *(symbols + rand() % (sizeof(symbols) - 1)); *p = '\0'; return buf; } int main(void){ size_t len; srand(time(NULL)); printf("Enter 0 for quit.\n"); while ( 1 ){ printf("Length: "); if ( scanf("%u", &len) != 1 ){ perror("scanf"); exit(1); } if ( ! len ) break; else { char buf[len + 1]; printf("Password: %s\n", make_password(buf, len)); } } exit(0); }
Объяснение кода листинга программы
- Программа начинается с подключения необходимых библиотек: stdio.h, stdlib.h и time.h
- Функция make_password принимает два аргумента: буфер, в который будет записан пароль, и размер этого буфера.
- В функции используется статический массив символов, из которого случайным образом выбираются символы для пароля.
- В функции main программа запрашивает у пользователя длину пароля и сохраняет эту длину в переменной len.
- Если пользователь вводит ноль, программа завершается.
- Если пользователь вводит корректное значение длины пароля, программа создает буфер нужного размера и вызывает функцию make_password для генерации пароля.
- Сгенерированный пароль выводится на экран.
- Программа повторяет шаги 4-7 до тех пор, пока пользователь не введет ноль.
- В конце программы выполняется функция exit(0), завершающая работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д