Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Programmation > Autres langages > [Python] Récupération saisie clavier > Lecture du sujet

[Python] Récupération saisie clavier

Vous devez être inscrit pour pouvoir poster des messages

RésoluLe problème de ce sujet a été résolu

Page : 1 
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : 1 
Hors ligne Arabesque356 # Posté le 30/06/2008 à 12:38:56
Groupe : Membres
Bonjour,
je souhaite récupérer une saisie "texte" d'un utilisateur en python.

J'ai donc entré le code suivant (qui marche pour le moment uniquement avec des valeurs numériques) :
Code : Python
1
mdpe = input("Entrez le mot de passe pour accéder à ce niveau : ")


Mais si je tape du texte eh bien j'ai une erreur comme :
Traceback (most recent call last):
File "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", line 99, in <module>
mdpe = input("Entrez le mot de passe pour accéder à ce niveau : ")
File "<string>", line 1, in <module>
NameError: name 'joubi' is not defined


Merci d'avance pour votre réponse.
Édité le 30/06/2008 à 12:39:30 par Arabesque356
 
Hors ligne Dr.Zooix # Posté le 30/06/2008 à 13:13:36
Haskell eies deg
Avatar
Groupe : Membres
Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Alors input ne récupère que des 'int' or tu voudrais une 'string'. Danc ce cas, c'est raw_input qu'il faut utiliser.

Ici:
Code : Python
1
mdpe = raw_input("Entrez le mot de passe pour accéder à ce niveau : ")


« Dans quelque domaine que ce soit, la perfection est enfin atteinte non pas lorsqu'il n'y a plus rien à ajouter mais lorsqu'il n'y a plus rien à enlever. » Antoine de Saint-Exupéry.
 
Hors ligne Arabesque356 # Posté le 30/06/2008 à 18:09:44
Groupe : Membres
Merci beaucoup de ta réponse rapide.

Tout fonctionne.

Edit: et saurais-tu comment remplacer tout ce qui se frappe par des étoiles ou tout simplement de façon à ce que l'on ne voit pas la saisie ?
Merci d'avance.
Édité le 30/06/2008 à 18:12:32 par Arabesque356
 
Hors ligne nicknick63 # Posté le 30/06/2008 à 18:50:48
Avatar
Groupe : Membres
En mode console et en restant portable, je pense que ce que tu demande n'est pas loin de l'impossible...

Image utilisateur
Envie de discuter avec la communauté d'Exalead ? Allez sur le chat ! (xmpp:exalead@chat.jabberfr.org)
Les tableaux, c'est tabou, on en viendra tous a bout ! Image utilisateur
 
Hors ligne Arabesque356 # Posté le 30/06/2008 à 18:52:31
Groupe : Membres
Alors expliquez moi pourquoi par exemple le système telnet accesible depuis la console de windows permet de ne pas voir ce que l'on tape lors du mot de passe ?
 
Hors ligne Pingouin chauffé # Posté le 30/06/2008 à 19:11:12
Platypus Addict
Avatar
Groupe : Membres
Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Citation : --alex--

Le module getpass c'est tout simple :

Code : Python
1
motdepasse=getpass.getpass('Entrez votre mot de passe')

Et le mot de passe ne s'affichera pas à l'écran.

Par contre quand ton programme sera plus avancé, il te faudra hasher tes mots de passe.
Un petit exemple :

Code : Python
1
2
3
4
5
6
import getpass
mdp="test"

user_mdp=getpass.getpass('mot de passe?')
if user_mdp==mdp:
	print "ok"

Ce programme n'est pas sécurisé car il suffit d'ouvrir le fichier source et de lire le mot de passe.
Il faut donc séparément calculé la signature de "test" avec le module sha :

Code : Python
1
2
import sha
print sha.new('test').hexdigest()

On obtient
'a94a8fe5ccb19ba61c4c0873d391e987982fbbd3'.

Dans notre premier programme on va remplacer le mot de passe par la signature :

Code : Python
1
2
3
4
5
6
7
8
import getpass
import sha
mdp_sign='a94a8fe5ccb19ba61c4c0873d391e987982fbbd3'

user_mdp=getpass.getpass('mot de passe?')
user_mdp_sign=sha.new(user_mdp).hexdigest()
if user_mdp_sign==mdp_sign:
	print "ok"

Et tu vois qu'ici, même en ouvrant le fichier source, il n'y a aucun moyen de savoir quel est le mot de passe, donc le système est sécurisé :)


Citation : toi
Alors expliquez moi pourquoi par exemple le système telnet accesible depuis la console de windows permet de ne pas voir ce que l'on tape lors du mot de passe ?
Qu'est-ce qui prouve que c'est portable ?
Édité le 30/06/2008 à 19:12:46 par Pingouin chauffé

Herr Mannelig, herr Mannelig trolofven i mig
För det jag bjuder så gerna
I kunnen väl svara endast ja eller nej
Om i viljen, eller ej.
 
Hors ligne Arabesque356 # Posté le 30/06/2008 à 19:16:28
Groupe : Membres
Ok merci.

La portabilité je m'en fiche un peu pour le moment étant donné que les programmes que je fais sont des programmes d'entraînement destinés à mon seul apprentissage.

Néanmoins merci beaucoup de votre aide car j'ai appris de nouvelles choses.

Warning: Problem with getpass. Passwords may be echoed.

Par contre j'ai cette erreur lors de l'utilisation en tapant getpass.getpass
Édité le 30/06/2008 à 19:19:35 par Arabesque356
 
Hors ligne nicknick63 # Posté le 01/07/2008 à 00:34:37
Avatar
Groupe : Membres
Il nous faudrait ton code, on ne peut pas trop juger comme ça...
En tous cas n'oublie pas de lire la doc ;) :
http://docs.python.org/lib/module-getpass.html
Édité le 01/07/2008 à 00:37:25 par nicknick63

Image utilisateur
Envie de discuter avec la communauté d'Exalead ? Allez sur le chat ! (xmpp:exalead@chat.jabberfr.org)
Les tableaux, c'est tabou, on en viendra tous a bout ! Image utilisateur
 
Hors ligne Arabesque356 # Posté le 01/07/2008 à 22:38:40
Groupe : Membres
Exemple:
Code : Python
1
2
3
4
5
6
7
8
import getpass

motdepasse = getpass.getpass("Entrez votre mot de passe:\n")

if motdepasse == 'lemotdepassequejeveux':
    print "ok"
else:
    print "pas ok"


Ceci ne marche pas.
Erreur affichée :
Warning: Problem with getpass. Passwords may be echoed.
 
Hors ligne nicknick63 # Posté le 02/07/2008 à 01:23:12
Avatar
Groupe : Membres
Cette réponse a aidé l'auteur du sujet Cette réponse a aidé l'auteur du sujet
Hum, non, ce n'est pas bien grave. Apparement l'erreur vient de ton IDE, il t'avertit que le password sera quand même affiché, mais si tu executes ton script "normalement" il ne devrait pas y avoir de problèmes. En tout cas chez moi c'est comme ça que ça marche. Et de toutes façons le message d'erreur ne t'empêche pas de taper ton password, mais comme indiqué il est affiché quand tu le tapes.

Image utilisateur
Envie de discuter avec la communauté d'Exalead ? Allez sur le chat ! (xmpp:exalead@chat.jabberfr.org)
Les tableaux, c'est tabou, on en viendra tous a bout ! Image utilisateur
 
Hors ligne Arabesque356 # Posté le 02/07/2008 à 13:57:38
Groupe : Membres
Au temps pour moi lors de la création de l'exécutable ça marche parfaitement.

Merci beaucoup.
 

Retour au forum "Autres langages" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 119 Zéros connectés | Requêtes SQL 7 requêtes | Temps de génération de la page : Total (SQL) 0.0223s (0.007s)