Генератор паролей. (шутка).

В заголовочном файле cstdio С++ есть замечательная функция tmpfile, которая предназначена для создания временного двоичного файла. Имя файла гарантированно отличается от любого другого существующего файла. Этим именем файла я и решил воспользоваться, чтобы генерировать достаточно «уникальные пароли».

И так сама программа, которая генерирует пароли длинной 18 символов.

#include <iostream>

using namespace std;

#define N 9

int main ()

{

// строка для хранения сгенерированного пароля

char buffer[L_tmpnam];

// переменная для хранения количества паролей 

int num; 

cout << ″Введите количество паролей. ″

<< ″По окончание ввода нажмите Enter\n″ << endl;

// запишем введенное значение в переменную num

cin >> num; 

cout << endl;

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

// генерация первой части пароля сохранение в buffer

tmpnam(buffer);

// запишем значение в переменную str

string str = buffer; 

// генерация второй части пароля сохранение в buffer

tmpnam(buffer);

// запишем значение в переменную str1

string str1 = buffer;  

// генерация третьей части пароля сохранение в buffer

tmpnam(buffer); 

// запишем значение в переменную str2

string str2 = buffer; 

// уберем первые 9 символов из первой части пароля

str.erase (0,N);

// уберем первые 9 символов из второй части пароля

str1.erase (0,N);

// уберем первые 9 символов из третьей части пароля

str2.erase (0,N);

// объединим все части пароля

cout << str+str1+str2 << endl; 

}

return 0;

}

Демонстрация работы данной программы.

 Генерируем 5 паролей.

Генерируем 20 паролей.

Pwgen нам больше не нужен. :-).

Данная программа не более чем шуточная демонстрация возможностей функции tmpfile.

(Программа запускалась в Code::Blocks IDE 16.01 на Linux Mint 19.0).