Aiuto su creazione password e salvataggio sul pc

di il
21 risposte

Aiuto su creazione password e salvataggio sul pc

Salve a tutti, precisiamo che sono un neofita riguardo la programmazione e sto a gli inizi.. sto creando un piccolo programma di badge e sto usando qt creator che si bassa sul c++. vorrei creare un modo che il nome utente e la password venga creata dall'utente finale, e salvarla sul proprio pc, per il momento non mi interessa la fase di criptazione, vorrei solo poter capire come salvarla su un file sulla stessa directory del mio programma e in un secondo momento richiamarla per poi procedere alla verifica in ogni accesso. come posso fare ? non si trova niente per quando riguarda varie guide e tutorial... grazie a tutti

21 Risposte

  • Re: Aiuto su creazione password e salvataggio sul pc

    Powa92 ha scritto:


    vorrei solo poter capire come salvarla su un file sulla stessa directory del mio programma e in un secondo momento richiamarla per poi procedere alla verifica in ogni accesso. come posso fare ?
    La tua problematica cosa riguarda nello specifico?
    Non sai come leggere/scrivere file in generale, oppure non sai come crittografare la password, oppure entrambi?

    In linea generale, eviterei comunque di salvare dati nella cartella del programma stesso, poiché Windows te lo impedisce: devi usare la cartella personale dedicata alle impostazioni dei programmi per l'utente (AppData).

    Ciao!
  • Re: Aiuto su creazione password e salvataggio sul pc

    Alka ha scritto:


    Powa92 ha scritto:


    vorrei solo poter capire come salvarla su un file sulla stessa directory del mio programma e in un secondo momento richiamarla per poi procedere alla verifica in ogni accesso. come posso fare ?
    La tua problematica cosa riguarda nello specifico?
    Non sai come leggere/scrivere file in generale, oppure non sai come crittografare la password, oppure entrambi?

    In linea generale, eviterei comunque di salvare dati nella cartella del programma stesso, poiché Windows te lo impedisce: devi usare la cartella personale dedicata alle impostazioni dei programmi per l'utente (AppData).

    Ciao!
    bene o male so la base di come creare un file di lettura e scrittura. ma non so come sfruttarlo per la creazione della password e della lettura della cosiddetto file . vabbe anche ho fatto l'esempio del salvataggio nella propria directory del programma e per capire come funziona poi ovviamente l'adatto. per la cripotografia invece ci sono varie guide quindi abbastanza intuibili per il momento quello è un problema secondario. quindi ricapitolando mi manca proprio la base di applicazione, anche se so in minima parte come si crea un file è pur sempre una base. e volevo un aiuto di come procedere per la creazione di pass su un file e poi richiamarlo in un secondo momento. spero di essere stato abbastanza chiaro con tutti questi studi ho una mente abbastanza incasinata in questo momento ... comunque grazie di aver risposto
  • Re: Aiuto su creazione password e salvataggio sul pc

    Powa92 ha scritto:


    bene o male so la base di come creare un file di lettura e scrittura.
    ma non so come sfruttarlo per la creazione della password e della lettura della cosiddetto file
    Se sai come leggere e scrivere un file, basta che tu scriva e legga un testo che è la password: come fai a non sapere fare una cosa che conosci in base al contenuto a cui si fa riferimento?

    Ci hai provato almeno? Se sì, pubblica il codice così si può dare una occhiata ed eventualmente correggerlo o integrarlo.
  • Re: Aiuto su creazione password e salvataggio sul pc

    Ciao, per salvare i dati di un'app in Qt su un file puoi usare la classe QSettings:
    https://doc.qt.io/qt-5/qsettings.htm

    Nel costrutture specifica il formato QSettings::IniFormat, altrimenti lo salva nel registro.

    Per ottenere il giusto percorso Appdata su Windows o equivalente su altri sistemi operativi, usa la classe QStandardPaths:
    https://doc.qt.io/qt-5/qstandardpaths.htm

    usando le apposite costanti riportate nelle tabelle nel link che ti ho mandato. Nessuno ti vieta di allungare il percorso in sottocartelle, che verranno create automaticamente nel momento del salvataggio.

    Se nel main hai usato le funzioni setApplicationName e setOrganizationName, della classe QCoreApplication, al percorso verrà automaticamente aggiunto il prefisso "NomeOrganizzazione/NomeApplicazione" prima della sottocartella del tuo file.
    https://doc.qt.io/qt-5/qcoreapplication.htm
  • Re: Aiuto su creazione password e salvataggio sul pc

    Alka ha scritto:


    Powa92 ha scritto:


    bene o male so la base di come creare un file di lettura e scrittura.
    ma non so come sfruttarlo per la creazione della password e della lettura della cosiddetto file
    Se sai come leggere e scrivere un file, basta che tu scriva e legga un testo che è la password: come fai a non sapere fare una cosa che conosci in base al contenuto a cui si fa riferimento?

    Ci hai provato almeno? Se sì, pubblica il codice così si può dare una occhiata ed eventualmente correggerlo o integrarlo.
    non ci ho provato ancora. perchè mi stavo un momento dedicando ad altro, quindi non ci vuole un procedimento cosi complesso come immaginavo, basta che lo scrivo su un file di testo.
  • Re: Aiuto su creazione password e salvataggio sul pc

    Alexv ha scritto:


    Ciao, per salvare i dati di un'app in Qt su un file puoi usare la classe QSettings:
    https://doc.qt.io/qt-5/qsettings.htm

    Nel costrutture specifica il formato QSettings::IniFormat, altrimenti lo salva nel registro.

    Per ottenere il giusto percorso Appdata su Windows o equivalente su altri sistemi operativi, usa la classe QStandardPaths:
    https://doc.qt.io/qt-5/qstandardpaths.htm

    usando le apposite costanti riportate nelle tabelle nel link che ti ho mandato. Nessuno ti vieta di allungare il percorso in sottocartelle, che verranno create automaticamente nel momento del salvataggio.

    Se nel main hai usato le funzioni setApplicationName e setOrganizationName, della classe QCoreApplication, al percorso verrà automaticamente aggiunto il prefisso "NomeOrganizzazione/NomeApplicazione" prima della sottocartella del tuo file.
    https://doc.qt.io/qt-5/qcoreapplication.htm
    grazie mille. gentilissimi
  • Re: Aiuto su creazione password e salvataggio sul pc

    Alka ha scritto:


    Powa92 ha scritto:


    bene o male so la base di come creare un file di lettura e scrittura.
    ma non so come sfruttarlo per la creazione della password e della lettura della cosiddetto file
    Se sai come leggere e scrivere un file, basta che tu scriva e legga un testo che è la password: come fai a non sapere fare una cosa che conosci in base al contenuto a cui si fa riferimento?

    Ci hai provato almeno? Se sì, pubblica il codice così si può dare una occhiata ed eventualmente correggerlo o integrarlo.
    okkei ho fatto una piccola prova cosi e a funzionato, ho fatto un test rapido senza calcolare input di errore che l'utente finale puo causare ovviamente poi va rivisitato per far in modo che l'utente finale non faccia guai, pero a sensazione questo linea di codice mi sembra molto grezza e primitiva, c'è un modo migliore? si puo salvare in un file che non txt ?

    int main()
    {
        string Nome, Cognome, Password;
    
        ofstream Dati ("dati.txt");
        cout << "Immetti il nome :" << endl;
        cin >> Nome;
        cout << "Immetti il cognome: " << endl;
        cin >> Cognome;
        cout << "Immetti la password: " << endl;
        cin >> Password;
    
        Dati << Nome << Cognome << Password;
        Dati.close();
    
    
    	string NomeIns, PasswordIns;
        	ifstream Lett ("dati.txt");
       do
        {
            cout <<" inserisci la nome è pass per accedere: "  ;
            cin >> NomeIns;
            cout << " inserisci la pass: ";
            cin >> PasswordIns;
            if (NomeIns == Nome && PasswordIns == Password)
            cout << " puoi accedere " << endl;
            else
            cout << " ritenta " << endl;
        }while (NomeIns != Nome || PasswordIns != Password);
    
    }
  • Re: Aiuto su creazione password e salvataggio sul pc

    Puoi usare una struttura e scrivere/leggere in binario su un file generico
  • Re: Aiuto su creazione password e salvataggio sul pc

    Solo una annotazione
    Puoi benissimo scrivere nella cartella del programma, te lo consiglio fortemente.
    ti basta non mettere la cartella dentro programmi, che ha tutta una serie di inutili controlli del sistema operativo windows

    Se metti dentro c:/ilmioprogramma puoi leggere e scrivere, e con un poco di attenzione anche rendere il programma portabile, evitando una delle maggiori ridicolaggini di windows.
    Riguardo al merito puoi usare i file c++ 'vecchi', quelli 'nuovi', i file C 'vecchi', le api Windows.
    Differenze?
    A parte le prestazioni il supporto dei nomi non latin.
    Se vuoi chiamare un file contabilità con l'accento sulla a (primo esempio) ci sono le versioni w e via col tango
  • Re: Aiuto su creazione password e salvataggio sul pc

    +m2+ ha scritto:


    Solo una annotazione
    Puoi benissimo scrivere nella cartella del programma, te lo consiglio fortemente.
    ti basta non mettere la cartella dentro programmi, che ha tutta una serie di inutili controlli del sistema operativo windows

    Se metti dentro c:/ilmioprogramma puoi leggere e scrivere, e con un poco di attenzione anche rendere il programma portabile, evitando una delle maggiori ridicolaggini di windows.
    Riguardo al merito puoi usare i file c++ 'vecchi', quelli 'nuovi', i file C 'vecchi', le api Windows.
    Differenze?
    A parte le prestazioni il supporto dei nomi non latin.
    Se vuoi chiamare un file contabilità con l'accento sulla a (primo esempio) ci sono le versioni w e via col tango
    se voglio invece salvare i file su appdata e renderlo portabile ? ognuno ha un nome utente diverso c:\users\(nome utente)\appdata\local\myapp.
    come posso rendere quel nome utente una variabile?. perchè ho intenzione di salvare anche una lista in quella cartella che voglio trasferire su appdata. poi un ultima domanda so che sono rompi, è possibile rendere i file creato in questo caso per la pass un elemento nascoto?
  • Re: Aiuto su creazione password e salvataggio sul pc

    La prima te la sconsiglio.
    è spazzatura microsoft priva di una logica se non complicare inutilmente la vita

    Per la seconda no
  • Re: Aiuto su creazione password e salvataggio sul pc

    Powa92 ha scritto:


    se voglio invece salvare i file su appdata e renderlo portabile ? ognuno ha un nome utente diverso c:\users\(nome utente)\appdata\local\myapp.
    come posso rendere quel nome utente una variabile?. perchè ho intenzione di salvare anche una lista in quella cartella che voglio trasferire su appdata. poi un ultima domanda so che sono rompi, è possibile rendere i file creato in questo caso per la pass un elemento nascoto?
    Stai usando Qt, giusto? Come tu ho detto usa la classe QStandardPaths per ottenere i percorsi standard di sistema.

    Prima aggiungi nel main:
    
    #include <QCoreApplication>
    //...
    int main(){
    	QApplication a(argc, argv);
    	QCoreApplication::setOrganizationName("Powa92"); //Facoltativo
    	QCoreApplication::setApplicationName("myapp");
    	//...
    	return a.exec();
    }
    
    Per dare un nome alla tua applicazione.

    Per ottenere il percorso di Appdata (o equivalente su altro sistema operativo, dai un'occhiata alle tabelle riportate nel link di sopra):
    
    #include <QString>
    #include <QStandardPaths>
    
    QString path = QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation);
    
    Per ottenere un percorso del tipo: "C:/Users/<USER>/AppData/Local/Powa92/myapp"
  • Re: Aiuto su creazione password e salvataggio sul pc

    +m2+ ha scritto:


    La prima te la sconsiglio.
    è spazzatura microsoft priva di una logica se non complicare inutilmente la vita

    Per la seconda no
    grazie mille. e cosi odioso programmare su windows?
  • Re: Aiuto su creazione password e salvataggio sul pc

    Alexv ha scritto:


    Powa92 ha scritto:


    se voglio invece salvare i file su appdata e renderlo portabile ? ognuno ha un nome utente diverso c:\users\(nome utente)\appdata\local\myapp.
    come posso rendere quel nome utente una variabile?. perchè ho intenzione di salvare anche una lista in quella cartella che voglio trasferire su appdata. poi un ultima domanda so che sono rompi, è possibile rendere i file creato in questo caso per la pass un elemento nascoto?
    Stai usando Qt, giusto? Come tu ho detto usa la classe QStandardPaths per ottenere i percorsi standard di sistema.

    Prima aggiungi nel main:
    
    #include <QCoreApplication>
    //...
    int main()
    	QApplication a(argc, argv);
    	QCoreApplication::setOrganizationName("Powa92"); //Facoltativo
    	QCoreApplication::setApplicationName("myapp");
    	//...
    	return a.exec();
    
    Per dare un nome alla tua applicazione.

    Per ottenere il percorso di Appdata (o equivalente su altro sistema operativo, dai un'occhiata alle tabelle riportate nel link di sopra):
    
    #include <QString>
    #include <QStandardPaths>
    
    QString path = QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation);
    
    Per ottenere un percorso del tipo: "C:/Users/<USER>/AppData/Local/Powa92/myapp"
    si sto usando QT, cerco di andare sempre fuori alle righe, quando tutti usano visual studio io vario LOL, anche se è piu faticoso, gia il c++ è un linguaggio abbastanza tosto, grazie mille siete tutti gentilissimi, parecchi amici programmatori quasi non ti cagano.... qua è tutto diverso, mi state facendo salire di nuovo un hype incredibile
Devi accedere o registrarti per scrivere nel forum
21 risposte