Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: yuniorxD en 9 Diciembre 2012, 08:35 am



Título: ocultar contraseña (python 3.2)
Publicado por: yuniorxD en 9 Diciembre 2012, 08:35 am
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:
Código:
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 !  ;-)


Título: Re: ocultar contraseña (python 3.2)
Publicado por: Eleкtro en 9 Diciembre 2012, 19:20 pm
aberigue sobre getpass.getpass pero no funciona

Sí que funciona:

Código
  1. import getpass
  2. pwd = getpass.getpass("Introduce el password: ")
  3. print pwd

Saludos


Título: Re: ocultar contraseña (python 3.2)
Publicado por: yuniorxD en 9 Diciembre 2012, 20:47 pm
me dale ste error

Código
  1. import getpass
  2. REGISTRADOS = ('junior','kevin','roy','rony','katy','roxana','romel','kristian','pro')
  3. CONTRASEÑAS = ('sistemas')
  4.  
  5.  
  6. def login(usuario,passw):
  7.    if usuario in REGISTRADOS:
  8.        if passw in CONTRASEÑAS:
  9.            return 1
  10.        else:
  11.            print("\n\tCONTRASEÑA INCORECTA\n")
  12.    else:
  13.        return 2
  14.  
  15. usuario=input('ingrese el usuario: ')
  16. passw = getpass.getpass("Introduce el password: ")
  17.  
  18. if login(usuario,passw)==1:
  19.    print('welcome')
  20. else:
  21.    print('No registrado')
  22.  


me sale ste error:

Código
  1. >>>
  2. ingrese el usuario: junior
  3.  
  4. Warning (from warnings module):
  5.  File "C:\Python32\lib\getpass.py", line 92
  6.    return fallback_getpass(prompt, stream)
  7. GetPassWarning: Can not control echo on the terminal.
  8. Warning: Password input may be echoed.
  9. Introduce el password: sistemas
  10. welcome
  11. >>>


Título: Re: ocultar contraseña (python 3.2)
Publicado por: Eleкtro en 9 Diciembre 2012, 21:19 pm
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


Título: Re: ocultar contraseña (python 3.2)
Publicado por: yuniorxD en 10 Diciembre 2012, 18:51 pm
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


Título: Re: ocultar contraseña (python 3.2)
Publicado por: Eleкtro en 10 Diciembre 2012, 19:31 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
  1. input()

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

Saludos!


Título: Re: ocultar contraseña (python 3.2)
Publicado por: yuniorxD en 13 Diciembre 2012, 08:03 am
muy agradecido , solucione mi problema , no encontre la manera de poner los asteriscos pero  todo bien , gracias


Título: Re: ocultar contraseña (python 3.2)
Publicado por: 0x5d en 13 Diciembre 2012, 08:52 am
Tienes que pausar la ejecución del script, igual que en un "bat" escribes el comando "pause" para que no se cierre:
Código
  1. 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.