ocultar contraseña (python 3.2)

Iniciado por yuniorxD, 9 Diciembre 2012, 08:35 AM

0 Miembros y 2 Visitantes están viendo este tema.

yuniorxD

pregunta en python 3.2 .. como ago para pedir una contraseña y que no se digiten las palabras si no muestren asteriscos ???
muestro mi code:

REGISTRADOS = ('junior','kevin','roy','rony','katy','roxana','romel','kristian','pro')
CONTRASEÑAS = ('sistemas','buey')


def login(usuario,passw):
    if usuario in REGISTRADOS:
        if passw in CONTRASEÑAS:
            return 1
        else:
            print("\n\tCONTRASEÑA INCORECTA\n")
    else:
        return 2
   
usuario=input('ingrese el usuario: ')
passw = input('ingrese su contraseña:  ') # >> no quiero que se dijite las palabras ( que aparezca **)

if login(usuario,passw)==1:
    print('welcome')
else:
    print('No registrado')


aberigue sobre
getpass.getpass pero no funciona , asi que pido sugerencias
ya sea con alguna libreta o con algun algoritmo extra
compartid !  ;-)

Eleкtro

Cita de: yuniorxD en  9 Diciembre 2012, 08:35 AM
aberigue sobre getpass.getpass pero no funciona

Sí que funciona:

Código (python) [Seleccionar]
import getpass
pwd = getpass.getpass("Introduce el password: ")
print pwd


Saludos








yuniorxD

me dale ste error

Código (python) [Seleccionar]
import getpass
REGISTRADOS = ('junior','kevin','roy','rony','katy','roxana','romel','kristian','pro')
CONTRASEÑAS = ('sistemas')


def login(usuario,passw):
    if usuario in REGISTRADOS:
        if passw in CONTRASEÑAS:
            return 1
        else:
            print("\n\tCONTRASEÑA INCORECTA\n")
    else:
        return 2
   
usuario=input('ingrese el usuario: ')
passw = getpass.getpass("Introduce el password: ")

if login(usuario,passw)==1:
    print('welcome')
else:
    print('No registrado')



me sale ste error:

Código (python) [Seleccionar]

>>>
ingrese el usuario: junior

Warning (from warnings module):
  File "C:\Python32\lib\getpass.py", line 92
    return fallback_getpass(prompt, stream)
GetPassWarning: Can not control echo on the terminal.
Warning: Password input may be echoed.
Introduce el password: sistemas
welcome
>>>

Eleкtro

Es porqué lo estás probando en la IDLE y el módulo no puede trabajar en el IDLE, pruébalo abriendo manualmente el archivo.py haciendo doble click, o desde la CMD/Shell

Saludos








yuniorxD

perfecto , la contraseña no aparece . osea sta oculpa
pero como aria para que se digiten *****( asteriscos ) ,y una cosa  mas
cuando ejecuto   ponlo el usuario y login , se cierra . como aria para que el CMD/Shell
  se mantenga abierto??

de antemano  MUCHAS GRACIAS  ;D

Eleкtro

Cita de: yuniorxD en 10 Diciembre 2012, 18:51 PM
cuando ejecuto   ponlo el usuario y login , se cierra . como aria para que el CMD/Shell se mantenga abierto??

Tienes que pausar la ejecución del script, igual que en un "bat" escribes el comando "pause" para que no se cierre:
Código (python) [Seleccionar]
input()

Sobre lo de enmascarar el password, nunca lo he visto hacer en python, no sé si es posible.

Saludos!








yuniorxD

muy agradecido , solucione mi problema , no encontre la manera de poner los asteriscos pero  todo bien , gracias

0x5d

Cita de: EleKtro H@cker en 10 Diciembre 2012, 19:31 PM
Tienes que pausar la ejecución del script, igual que en un "bat" escribes el comando "pause" para que no se cierre:
Código (python) [Seleccionar]
input()

Sobre lo de enmascarar el password, nunca lo he visto hacer en python, no sé si es posible.

Saludos!
Sencillo, detectando las pulsaciones de las teclas, vas guardando cada caracter en un array o lo concatenas con += y por cada pulsación se hace un print "*",

Saludos, Javier.
¡ SIGUEME EN TWITTER -> @JavierEsteban__ !