Написать алгоритм генерации пароля - 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);
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с языком C
  2. Определяем константы: длину пароля (LEN) и количество символов в алфавите (M)
  3. Объявляем строку ALPHA, которая содержит все возможные символы для пароля
  4. Создаём функцию get_sum, которая вычисляет контрольную сумму пароля
  5. В функции main создаём массив password, достаточный для хранения пароля
  6. Инициализируем генератор случайных чисел с помощью srand(time(0))
  7. Заполняем первые LEN элементов массива password случайно выбранными символами из строки ALPHA
  8. Вычисляем контрольную сумму пароля с помощью функции get_sum и получаем случайное число в диапазоне от 0 до M-1
  9. Записываем этот символ в элемент password[LEN]
  10. Добавляем символ '\0' в конец строки для корректного завершения строки
  11. Выводим полученный пароль на экран с помощью функции puts

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы