Gestionnaire mot de passe Isn
Joachim.C
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6205 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Bonjour pour mon projet Isn j'ai choisis le sujet qui traitait de la création d'un gestionnaire de mot de passe.
J'ai déjà effectuer toute l'interface graphique avec Tkinter et crée la base du gestionnaire mais quand je rentre les mot de passe qui doivent s'écrire dans un autre fichier texte ceux ci apparaissent en clair sans être crypter, ce qui n'est pas très sécurisé. Si quelqu'un pourrait m'aider pour crypter et décrypter les mots de passes cela serait très sympathique.
Bonjour pour mon projet Isn j'ai choisis le sujet qui traitait de la création d'un gestionnaire de mot de passe.
J'ai déjà effectuer toute l'interface graphique avec Tkinter et crée la base du gestionnaire mais quand je rentre les mot de passe qui doivent s'écrire dans un autre fichier texte ceux ci apparaissent en clair sans être crypter, ce qui n'est pas très sécurisé. Si quelqu'un pourrait m'aider pour crypter et décrypter les mots de passes cela serait très sympathique.
from tkinter import * from tkinter import messagebox loginwin = Tk() loginwin.wm_title("Login") loginwin.geometry("225x75") win = Tk() win.wm_title("Password Manger") win.geometry("550x215") win.withdraw() u = StringVar() p = StringVar() a = StringVar() u1 = StringVar() p1 = StringVar() def login(): username1 = u.get() password1 = p.get() print(username1,password1) if username1 == "Joachim.C": if password1 == "MP": messagebox.showinfo("Login", "Login Complete") loginwin.withdraw() win.deiconify() else: messagebox.showinfo("Login", "Incorrect Password or Username") else: messagebox.showinfo("Login", "Incorrect Password or Username") def add(): account11 = str(account.get()) username22 = str(username1.get()) password22 = str(password1.get()) file = open("passwords.txt", "a") file.write("\n" + account11 + " " + username22 + " " + password22) file.close() Label(loginwin, text=" Username: ").grid(row=1, column=1) Label(loginwin, text=" Password: ").grid(row=2, column=1) Label(win, text=" Account: ").grid(row=1, column=1) Label(win, text=" Username: ").grid(row=2, column=1) Label(win, text=" Password: ").grid(row=3, column=1) username = Entry(loginwin, textvariable = u) username.grid(row=1, column=2) password = Entry(loginwin, textvariable = p, show = "*") password.grid(row=2, column=2) account = Entry(win, textvariable = a) account.grid(row=1, column=2) username1 = Entry(win, textvariable = u1) username1.grid(row=2, column=2) password1 = Entry(win, textvariable = p1) password1.grid(row=3, column=2) button_login = Button(loginwin, text="Login", command=login) button_login.grid(row=3, column=1) button_add = Button(win, text="Add", command=add) button_add.grid(row=4, column=1) loginwin.mainloop() win.mainloop()
Configuration: Macintosh / Safari 11.1.2
A voir également:
- Gestionnaire de mot de passe python
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
- Voir mot de passe wifi android - Guide
1 réponse
Salut Joachim.C,
Le code de ce que tu as programmé correspond apparemment à un gestionnaire d'authentification par mot de passe, et non pas à un gestionnaire de mots de passe.
1.
On désigne habituellement par "gestionnaire de mots de passe" un programme capable de stocker les mots de passe sous forme sécurisée, afin de permettre à l'utilisateur de les récupérer. C'est une sorte de coffre-fort à mots de passe :
https://www.commentcamarche.net/faq/29818-choisir-securiser-et-gerer-ses-mots-de-passe#gestion-des-mots-de-passe-les-logiciels-gratuits
Dans ce cas, les mots de passe sont effectivement stockés sous forme chiffrée, avec un algorithme de chiffrement, déchiffrables au moyen d'une clef connue de l'utilisateur, ce qui permet au programme de restituer la clef en clair.
2.
Un gestionnaire d'authentification par mot de passe est un programme intégré à une application ou à un système, qui authentifie l'accès d'un utilisateur à cette application ou ce système.
Dans ce type d'applications, les mots de passe sont généralement stockés sous forme hachée et non sous forme chiffrée, avec un algorithme de hachage non réversible. A la différence d'un algorithme de chiffrement, on ne peut pas, à partir de la version hachée, remonter à la version en clair. Tout ce qu'on peut faire, c'est comparer la version hachée d'un mot de passe entré par l'utilisateur avec la version hachée stockée.
Les mots de passe sont hachés et salés, le salage étant souhaitable pour éviter les attaques à base d'usage de rainbow table.
https://fr.wikipedia.org/wiki/Secure_Hash_Algorithm
https://www.commentcamarche.net/faq/8821-comment-bien-stocker-et-verifier-un-mot-de-passe
(note, cet article évoque MD5 et SHA1, qui ne sont plus actuellement conseillés pour faire cela pour des raisons de sécurité)
https://fr.wikipedia.org/wiki/Rainbow_table
Python te donne accès par la hashlib aux outils dont tu as besoin. La documentation officielle Python de hashlib est là : https://docs.python.org/3/library/hashlib.html
Une brève recherche avec des mots clefs appropriés te ferait tomber sur des exemples en Python (par exemple : hashlib how to store hashed passwords in python).
Dal
Le code de ce que tu as programmé correspond apparemment à un gestionnaire d'authentification par mot de passe, et non pas à un gestionnaire de mots de passe.
1.
On désigne habituellement par "gestionnaire de mots de passe" un programme capable de stocker les mots de passe sous forme sécurisée, afin de permettre à l'utilisateur de les récupérer. C'est une sorte de coffre-fort à mots de passe :
https://www.commentcamarche.net/faq/29818-choisir-securiser-et-gerer-ses-mots-de-passe#gestion-des-mots-de-passe-les-logiciels-gratuits
Dans ce cas, les mots de passe sont effectivement stockés sous forme chiffrée, avec un algorithme de chiffrement, déchiffrables au moyen d'une clef connue de l'utilisateur, ce qui permet au programme de restituer la clef en clair.
2.
Un gestionnaire d'authentification par mot de passe est un programme intégré à une application ou à un système, qui authentifie l'accès d'un utilisateur à cette application ou ce système.
Dans ce type d'applications, les mots de passe sont généralement stockés sous forme hachée et non sous forme chiffrée, avec un algorithme de hachage non réversible. A la différence d'un algorithme de chiffrement, on ne peut pas, à partir de la version hachée, remonter à la version en clair. Tout ce qu'on peut faire, c'est comparer la version hachée d'un mot de passe entré par l'utilisateur avec la version hachée stockée.
Les mots de passe sont hachés et salés, le salage étant souhaitable pour éviter les attaques à base d'usage de rainbow table.
https://fr.wikipedia.org/wiki/Secure_Hash_Algorithm
https://www.commentcamarche.net/faq/8821-comment-bien-stocker-et-verifier-un-mot-de-passe
(note, cet article évoque MD5 et SHA1, qui ne sont plus actuellement conseillés pour faire cela pour des raisons de sécurité)
https://fr.wikipedia.org/wiki/Rainbow_table
Python te donne accès par la hashlib aux outils dont tu as besoin. La documentation officielle Python de hashlib est là : https://docs.python.org/3/library/hashlib.html
Une brève recherche avec des mots clefs appropriés te ferait tomber sur des exemples en Python (par exemple : hashlib how to store hashed passwords in python).
Dal
par exemple :
- https://pycryptodome.readthedocs.io/en/latest/ (fork de PyCrypto, qui n'est plus maintenu)
- https://cryptography.io/en/latest/
- https://www.dlitz.net/software/python-pbkdf2/
tu as des exemples d'utilisation dans ces docs, et en cherchant un peu, tu tombes sur des articles qui te montrent comment faire fonctionner l'ensemble, comme celui-ci : https://nitratine.net/blog/post/python-encryption-and-decryption-with-pycryptodome/
https://www.vitoshacademy.com/hashing-passwords-in-python/
qui propose des fonctions toutes faites permettant de hacher un mot de passe et de vérifier un mot passe haché par rapport à un mot de passe fourni, avec des explications claires et détaillées...