Написать алгоритм генерации пароля - C (СИ) (250763)
Формулировка задачи:
Написать алгоритм генерации пароля.Дополнить программу возможностью: определить сгенерирован ли пароль вашим алгоритмом.
Решение задачи: «Написать алгоритм генерации пароля»
textual
Листинг программы
#include <stdio.h> #include <stdint.h> #include <stdlib.h> #include <time.h> #define LEN 8 #define M 36 const char* ALPHA = "qwertyuiopasdfghjklzxcvbnm1234567890"; uint8_t get_sum(char* password) { uint8_t result = 0; size_t i; for (i=0; i<LEN; i++) { result ^= password[i]; } return result; } int main() { char password[LEN + 2]; size_t i; srand(time(0)); for (i=0; i<LEN; i++) { password[i] = ALPHA[rand() % M]; } password[LEN] = ALPHA[get_sum(password) % M]; password[LEN + 1] = '\0'; puts(password); }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с языком C
- Определяем константы: длину пароля (LEN) и количество символов в алфавите (M)
- Объявляем строку ALPHA, которая содержит все возможные символы для пароля
- Создаём функцию get_sum, которая вычисляет контрольную сумму пароля
- В функции main создаём массив password, достаточный для хранения пароля
- Инициализируем генератор случайных чисел с помощью srand(time(0))
- Заполняем первые LEN элементов массива password случайно выбранными символами из строки ALPHA
- Вычисляем контрольную сумму пароля с помощью функции get_sum и получаем случайное число в диапазоне от 0 до M-1
- Записываем этот символ в элемент password[LEN]
- Добавляем символ '\0' в конец строки для корректного завершения строки
- Выводим полученный пароль на экран с помощью функции puts
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д