Генерация пароля на языке программирования С++

XXII Международный конкурс научно-исследовательских и творческих работ учащихся
Старт в науке

Генерация пароля на языке программирования С++

Соколова Я.П. 1
1Многопрофильный колледж ФГБОУ ВО "Тамбовский государственный технический университет"
Мосягина Н.Г. 1
1Многопрофильный колледж ФГБОУ ВО "Тамбовский государственный технический университет"
Автор работы награжден дипломом победителя III степени
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

ВВЕДЕНИЕ

В настоящее время безопасность данных становится все более актуальной, именно поэтому важность использования сложных паролей для защиты аккаунтов возрастает с каждым днем.

Киберугрозы становятся все более изощренными, а их масштаб расширяется, для того чтобы на достойном уровне обезопасить свои учетные записи от их влияния необходимо начать с использования сложных паролей.

Пароли на данный момент являются одним из самых слабых мест в системе кибербезопасности, и это не случайно. Большая часть пользователей сети используют легко запоминающиеся пароли, состоящие из слов или последовательностей символов, что оказывается удобным не только для самого пользователя, но и для злоумышленника, ведь это часто приводит к взлому аккаунтов и последующей утечке данных. Использование одного и того же пароля для нескольких учетных записей, ставит данные под еще большую угрозу.

Безопасность аккаунтов пользователей, использующих ресурсы сети Интернет, является одним из главных приоритетов.

1.Основная часть

1.1 Роль криптографии в процессе защиты данных

В самом общем значении «криптография» – это наука о безопасной передаче информации, а в более узком – метод защиты информации путем шифрования, когда исходное сообщение при передаче кодируется в секретный шифр, а при получении – расшифровывается обратно в обычный текст [1].

В контексте генерации паролей криптография играет ключевую роль в обеспечении их безопасности.

Возможности криптографии позволяют защитить данные от несанкционированного доступа и изменения. Влияние криптографии на защиту данных огромное и проявляется во многих аспектах. Криптографические методы защиты позволяют обеспечить основополагающие принципы информационной безопасности: конфиденциальность, целостность и доступность информации.

1.2 Виды шифрования информации

Криптография представляет собой науку о шифровании, поэтому необходимо понять, что такое шифрование данных и какие существуют виды шифрования.

Шифрование — это сокрытие или видоизменение данных таким образом, чтобы другие люди не могли их прочитать или понять [2].

Существует три основных вида шифрования:

  • симметричное – для кодирования и расшифровки информации используется один и тот же открытый ключ, доступ к которому может получить любой пользователь;

  • асимметричное – для кодирования и дешифровки используются разные ключи, при этом ключ, который нужен для разгадывания кода, — закрытый, им владеет только получатель;

  • хеш-функция – это вид шифрования, который не имеет обратной силы, то есть хеш-функцию невозможно раскодировать.

1.3 Разработка программы генерации пароля на языке С++

Программа генерации пароля является важным инструментом для обеспечения безопасности учетных записей по нескольким причинам: генерация уникальных и сложных паролей, повышение безопасности аккаунтов и общего уровня безопасности данных.

Для того, чтобы автоматизировать механизм генерации пароля и повысить безопасность аккаунтов в ходе работы над проектом была создана программа, основываясь на возможностях языка программирования С++, таких как генераторы случайных чисел и функции перемешивания символов в пароле.

Программа выполняет функцию генерации сложного пароля с помощью использования комбинации букв латинского алфавита верхнего и нижнего регистра, также цифр и специальных символов.

Код программы с подробными комментариями представлен ниже:

#include <iostream> // ввод и вывод через стандартный поток

#include <fstream> // работа с файлами

#include <random> // работа с генераторами случайных чисел

#include <Windows.h> // библиотекадляработыс Windows API

using namespace std;

class PassGen {

public:

void displayMessage()

{

int passLength;

int numOfPasswords;

char filename[100]; // массивсимволовдляхраненияименифайла

cout << "Введите длину пароля для генерации: ";

cin >> passLength;

cout << "Введите количество паролей для генерации: ";

cin >> numOfPasswords;

cout << "Введите имя файла для записи: ";

cin >> filename;

ofstream outFile(filename); // открытиефайладлязаписи

for (int k = 0; k < numOfPasswords; k++)

{

char* generatedPassword = passwordGenerator(passLength); // генерацияпароля

outFile << generatedPassword << endl; // записьпаролявфайл

}

outFile.close(); // закрытие файла

cout << "Пароли успешно сгенерированы и записаны в файл " << filename << endl;

}

char* passwordGenerator(int passLength)

{

char alphabet[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*"; // определение алфавита для пароля

char* password = new char[passLength + 1]; // определение массива символов для пароля

random_device rd; // генератор случайных чисел для инициализации других генераторов

mt19937 generator(rd()); // генерация случайных чисел с использованием Mersenne Twister 19937

uniform_int_distribution<int> distribution(0, sizeof(alphabet) - 2); // генерация равномерно распределенных случайных целых чисел в диапазоне

for (int i = 0; i < passLength; i++) {

int index = distribution(generator);

password[i] = alphabet[index];} // добавлениесимволаалфавитавпароль

password[passLength] = '\0'; // определение конца строки в паролях

random_shuffle(&password[0], &password[passLength]); // перемешивание символов в пароле

return password;}

};

int main()

{

SetConsoleCP(1251); // установка кодовой страницы ввода

SetConsoleOutputCP(1251); // установка кодовой страницы вывода

srand(time(NULL)); // инициализация генератора случайных чисел

PassGen pass;

pass.displayMessage(); // запуск функции генерации паролей

return 0;

}

Данная программа позволяет создавать необходимое количество паролей для генерации в текстовый файл, что удобно для хранения и управления большим количеством паролей. Программа генерирует случайные и надежные пароли, которые можно использовать для различных целей, таких как защита личных данных.

Работа разработанной программы представлена на рисунке 1.

Рисунок 1 – Работа программы генерации пароля

Сгенерированные пароли в текстовом файле, рисунок 2.

Рисунок 2 – Сгенерированные пароли с помощью программы на С++

ЗАКЛЮЧЕНИЕ

Криптография играет важную роль в защите информации от незаконного доступа. Разработанная программа генерации паролей поможет использовать надежные пароли для всех важных аккаунтов и их регулярное обновление, обеспечить безопасность личных данных.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ И ЛИТЕРАТУРЫ

  1. Лаборатория Касперского. Что такое криптография? – [Электронный ресурс]. Режим доступа: https://www.kaspersky.ru/resource-center/definitions/what-is-cryptography?ysclid=lwg0jd2udf327036203

  2. Шифрование информации: что это и для чего - методы и способы шифрования данных – [Электронный ресурс]. Режим доступа: https://practicum.yandex.ru/blog/chto-takoe-shifrovanie-informacii

Просмотров работы: 24