Gambas-it

Gambas3 => Programmazione => Topic aperto da: kicco - 26 Febbraio 2020, 20:33:04

Titolo: [Risolto] Settings: come memorizzare una password?
Inserito da: kicco - 26 Febbraio 2020, 20:33:04
 :ciao:
Con settings devo memorizzare i dati per l'invio della posta elettronica, compresa la password di accesso al SMTP.
Con un TextBox (con la proprietà .password attivata) registro la password, ma quando uso settings per memorizzarla, appare in chiaro.
Non è molto "carino"! ;D
Avete delle idee da suggerirmi?
Devo usare il componente gb.crypt?
 :ciao:
Titolo: Re:Settings: come memorizzare una password?
Inserito da: Gianluigi - 26 Febbraio 2020, 21:44:04
...
Devo usare il componente gb.cript?
 :ciao:

Non saprei, mai usato.
Forse potresti dare un'occhiata al codice di SerializeModel di Christof Thalhofer, nella discussione tedesca:
https://www.gambas-club.de/viewtopic.php?f=3&t=5659#p13701

 :ciao:
Titolo: Re:Settings: come memorizzare una password?
Inserito da: kicco - 27 Febbraio 2020, 08:57:22
Grazie!
 :ciao:
Titolo: Re:Settings: come memorizzare una password?
Inserito da: kicco - 27 Febbraio 2020, 12:35:24
Citazione
Devo usare il componente gb.crypt?
Mi rispondo da solo: Sì bisogna usare il componente gb.crypt !  :D
 :ciao:
Titolo: Re:Settings: come memorizzare una password?
Inserito da: kicco - 28 Febbraio 2020, 09:48:11
No! Il componente gb.crypt permette di criptare una password e poi di confrontare una nuova immissione di password con quella archiviata.
Il risultato è un booleano che vale False(!), se c'è corrispondenza.
Non permette di recuperare la password  per passarla, nel mio caso all'SMTP (nel caso di validazione).  :hard:
Prosegue la ricerca...
 :ciao:
Titolo: Re:Settings: come memorizzare una password?
Inserito da: kicco - 28 Febbraio 2020, 09:55:32
Forse qua c'è la soluzione:
https://lists.gambas-basic.org/pipermail/user/2011-May/033970.html (https://lists.gambas-basic.org/pipermail/user/2011-May/033970.html)
devo provarla perchè dal 2011 sono cambiate un po' di cose!
 :P
Titolo: Re:Settings: come memorizzare una password?
Inserito da: Gianluigi - 28 Febbraio 2020, 13:53:01
Forse qua c'è la soluzione:
https://lists.gambas-basic.org/pipermail/user/2011-May/033970.html (https://lists.gambas-basic.org/pipermail/user/2011-May/033970.html)
devo provarla perchè dal 2011 sono cambiate un po' di cose!
 :P

Sembra che funzioni sempre allo stesso modo.
Il problema però rimane o tu fai scrivere la password per il porta chiave oppure crei un porta chiave senza password che però mostra le password archiviate.

 :ciao:
Titolo: Re:Settings: come memorizzare una password?
Inserito da: kicco - 28 Febbraio 2020, 14:11:11
Forse qua c'è la soluzione:
https://lists.gambas-basic.org/pipermail/user/2011-May/033970.html (https://lists.gambas-basic.org/pipermail/user/2011-May/033970.html)
devo provarla perchè dal 2011 sono cambiate un po' di cose!
 :P

Sembra che funzioni sempre allo stesso modo.
Il problema però rimane o tu fai scrivere la password per il porta chiave oppure crei un porta chiave senza password che però mostra le password archiviate.

 :ciao:
Non ho avuto molto tempo, ma la prova che ho fatto non mi funzionava. Hai seguito Minisini alla lettera?
 :ciao:
Titolo: Re:Settings: come memorizzare una password?
Inserito da: Gianluigi - 28 Febbraio 2020, 17:15:37

Non ho avuto molto tempo, ma la prova che ho fatto non mi funzionava. Hai seguito Minisini alla lettera?
 :ciao:

Scusa il ritardo nella risposta, ma cercavo di capire un po di più sul porta chiavi di Ubuntu.
Ne esiste uno di default che si chiama Login e se noi facciamo il login classico cioè scrivendo la password all'avio del sistema si può sboccare con la password del sistema, cosa che non avviene se accediamo direttamente.
Però poi mostra la password in chiaro e non mi sembra molto sicuro, anzi per nulla.
Perchè funzioni la password con gb.desktop occorre aver installato secret-tool:
Codice: [Seleziona]
sudo apt install libsecret-tools
Desktop.passwords crea un nuovo portachiavi nominato Portachiavi predefinito e lo crea come tale (predefinito appunto).
Come già detto lo puoi impostare con la password di sistema in modo che non chieda password all'avvio del programma ma poi avrai anche la password di sistema visibili.
Conviene dargli un'altra password che sblocca il portachiavi di Gambas, tieni però presente che abbassi di moltissimo le difese delle password che ci memorizzi.

Il codice di Benoit va bene ad sempio:

Per scrivere:

Codice: [Seleziona]
Desktop.Passwords["pippo"] = TextBox1.Text

Per leggere:

Codice: [Seleziona]
TextBox2.Text = Desktop.Passwords["pippo"]

 :ciao:

Titolo: Re:Settings: come memorizzare una password?
Inserito da: kicco - 28 Febbraio 2020, 21:13:40
Grazie Gianluigi!
Stasera sono cotto come un merluzzo. Domani faccio un po' di prove, ma credo che questo non risolva la questione, come già dicevi tu!
 :ciao:
Titolo: Re:Settings: come memorizzare una password?
Inserito da: Gianluigi - 28 Febbraio 2020, 22:44:21
Potresti usare il componente gb.openssl di Tobias per usare un file criptato dove salvare la password e poterla riavere decriptata.
Ti allego un piccolo esempio tratto da un suo codice.

 :ciao:
Titolo: Re:Settings: come memorizzare una password?
Inserito da: kicco - 29 Febbraio 2020, 08:48:00
Grazie!
Titolo: Re:Settings: come memorizzare una password?
Inserito da: Gianluigi - 29 Febbraio 2020, 09:42:26
Prego, solo alcune precisazioni sul test dimostrativo allegato.
btnWrite (Scrivi) salva la frase scritta in txtCrypt usando la passphrase da te scelta e che dovrai sempre usare (la stessa) per poter decriptare (button Leggi) la password memorizzata.
Qui essendo una prova dimostrativa il file viene salvato in /tmp, naturalmente nella realtà dovrai salvarlo in un file permanente.

 :ciao:
Titolo: Re:Settings: come memorizzare una password?
Inserito da: Gianluigi - 29 Febbraio 2020, 10:05:58
Ho modificato l'esempio, ora gestisce l'errore sul tentativo di lettura con una passphrase diversa.

 :ciao:
Titolo: Re:Settings: come memorizzare una password?
Inserito da: kicco - 29 Febbraio 2020, 12:50:59
Ottimo! E grazie ancora!
 :-*  :2birre: