HHIDE_DUMP
Гость
H
HHIDE_DUMP
Гость
Сижу значит решаю олимпиадные задачи по c++, и приходит идея сделать генератор паролей. Почему бы и нет?Пароль (Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!parole —Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!) — условное словоПожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!или набор знаков, предназначенный для подтверждения личности или полномочий.
Пароли часто используются для защитыПожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!отПожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!. В большинствеПожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!комбинация «Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!— пароль» используется дляПожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!пользователя.
Wikipeadia
C++:
#include <iostream>
#include <algorithm>
#include <time.h>
#include <stdlib.h>
#include <fstream>
using std::cout;
using std::cin;
using std::endl;
class PassGen {
public:
void displayMessage()
{
int passLenght;
int numOfPasswords;
char * filename = new char;
cout << "Введите длину пароля для генерации: ";
cin >> passLenght;
cout << "Введите количество паролей для генерации: ";
cin >> numOfPasswords;
cout << "Будет сгенерировано паролей: " << numOfPasswords << "." << endl;
cout << endl;
cout << "Введите имя файла для записи: ";
cin >> filename;
std::ofstream outFile(filename);
for (int k = 0; k < numOfPasswords; k++) {
for (int i = 0; i < passLenght; ++i) {
numOfChars(passLenght);
passGenerator(passLenght);
outFile << password [i];
}
outFile << endl;
}
outFile.close();
cout << "Пароли успешно сгенерированы и записаны в файл " << filename << "" << endl;
}
void passGenerator(int passLenght)
{
password = new char [passLenght];
for (int i = 0; i < numOfNumbers; ++i) {
password [i] = char(rand() % 10 + 48);
}
for (int i = numOfNumbers; i < numOfNumbers + numOfBigChars; ++i) {
password [i] = char(rand() % 26 + 65);
}
for (int i = numOfNumbers + numOfBigChars; i < passLenght; ++i) {
password [i] = char(rand() % 26 + 97);
}
std::random_shuffle(password, password + passLenght);
}
void numOfChars(int passLenght)
{
numOfSmallChars = rand() % passLenght;
int charRandEnd = passLenght - numOfSmallChars;
numOfBigChars = rand() % charRandEnd;
numOfNumbers = passLenght - numOfSmallChars - numOfBigChars;
}
private:
int numOfSmallChars;
int numOfBigChars;
int numOfNumbers;
char * password;
};
int main()
{
setlocale(LC_ALL, "Russian");
srand(time(NULL));
PassGen * pass = new PassGen;
pass->displayMessage();
return 0;
}
Посмотреть вложение 8424
Посмотреть вложение 8425
Посмотреть вложение 8426
Exe.файл и просто код