Создание генератора паролей в C ++, который сохраняет пароль в .txt - PullRequest
0 голосов
/ 14 марта 2020

За прошедший день я создал генератор паролей, который после генерации пароля дает вам возможность сохранить этот пароль в текстовом файле.

Все работает, кроме генерации / печати пароля в Терминале и в файле .txt после ввода длины пароля он генерирует его, но не печатает.

Вот мой код:

/* 
    Password generator by Yataga

    github.com/yataga

    twitter.com/yataga7

*/

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <fstream>
using namespace std;

int main() {
    ofstream SavePass;
    char yn;
    const char TrueSelect = 'y';
    int SelectLengthInput;
    string pwd = "0aAbB1cCdD1eEf2F2gG3hHiIjJk3K45lLmM9n5N6o4OpPqQ76rRsStT78uUvVwW98xXyY0zZ";
    string password;
    cout << "Welcome to Yataga's random password generator" << endl;
    cout << "Type the size of yout random password" << endl;
    cin >> SelectLengthInput;
    cout << "generating your password....."<<endl;
    for(int i = 0; i<SelectLengthInput; i++) {
        password[i] = pwd[rand()%72];
    }
    cout<< "Your Password is: "<<password<<endl;
    cout<< "do you want to save this password in a file? (y/n): ";
    cin>>yn;
    if(yn == TrueSelect)
    {
        SavePass.open("passwords.txt");
        SavePass << password;
        SavePass.close();
        cout<< "Password saved on password.txt"<<endl;
    }
    else
    {
        cout<< "Thanks for using my generator!";
    }
    return 0;   
}

1 Ответ

0 голосов
/ 14 марта 2020

Изменить размер password перед записью в него, как password.resize(SelectLengthInput).

Кроме того, ввод должен быть проверен (например, что если пользователь введет -42?).

Кроме того, сохранение может выглядеть так:

{
    ofstream SavePass("passwords.txt");
    SavePass << password;
    cout<< "Password saved on password.txt"<<endl;
} // SavePass is closed here automatically
...