generador de contraseñas

julio 4, 2013 at 11:21 pm 3 comentarios

Estaba en el trabajo leyendo un manual que entre las cuestiones que tocaba estaba la típica sugerencia de “Las mejores recetas de como cocinar una password”, al toque se me ocurrió la meta de crear un generador de password. La posta que no soy programador, y de eso se van a dar cuenta al toque. Aun así me encanta programar, pero con lo poco que se arme lo siguiente. Obviamente armado en python.

Básicamente necesito tres módulos de python que generalmente están casi siempre instalado y listos a andar, salvo el caso de wxpython que bueno pueden ver como instalarlo si buscan por ahí.

#!/user/bin/python

# Importamos los modulos a utilizar
import string, random, wx

# Lo que viene abajo es re choto y mal programado, pero es lo primero que se me ocurrio
# Usa el modulo string para tomar con la ayuda de un random un caracter cualquier
clave = random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)+random.choice(string.printable)

# Aca viene la parte en donde la clave generada se inserta en un dialogo
# Utilizamos WxPython para generar el dialogo
# Genero una aplicacion normal, una ventana
app = wx.PySimpleApp()
# Creo un dialogo cargando el dato de clave
dialogo = wx.MessageDialog(None, clave, “Dialogo”, wx.OK|wx.ICON_INFORMATION)
# Muestro el Dialogo
dialogo.ShowModal()
# Destruyo el dialogo
dialogo.Destroy()
# Pongo la aplicacion en loop
app.MainLoop()

Un amigo de laburo escucho lo que estaba haciendo y le mostré el código. Coincidió que como genero el dato de la variable clave es una guachada y bastante asqueroso y sugerio otras formas. Pero bueno para comenzar es un paso adelante ya que funciona. Voy a ver de agregarle cosas, y funciones. Quiero que quede bien. Y ya el dar el primer paso de ponerme a crearlo me pareció genial. Vamos a ver como lo mejoro y que cosas le puedo agregar.

Anuncios

Entry filed under: accesibilidad, debian, debilidad, genialidad, GNU/Linux, linux, peripecias, personajes, personales, programacion, PyAr, python.

El comando del dia heavysaurios

3 comentarios Add your own

  • 1. nikos3194nikos3194  |  julio 7, 2013 en 6:16 pm

    Yo personalmente soy un neófito en python (tengo leídos varios cursos introductorios pero más allá de copiar y pegar código nunca hice nada propio), Agradezco que compartieras el código comentado y mi sugerencia es que consultes como intentar usar un bucle FOR para reducir lo que tu compañero te dice que es una “guachada” (dios mio no quiero saber que dirá de los que usamos batch como “lenguaje de programación” :mrgreen: )

    Yo últimamente me estuve emocionando más con powershell (si, soy un traidor 8) ), el cual vi que se relaciona con python al ser una copia bulgar de perl (ya leí que historicamente python fue creado por guido van rossum basándose en perl, entre otros lenguajes), con la simple desventaja de ser monoplataforma y reducido a la plataforma ms, pero a mi me gusta por aceptarme algunos comandos que uso en batch 😛

    Responder
    • 2. terli  |  julio 7, 2013 en 7:26 pm

      En realidad lo tengo que arreglar bastante. Pero como algo inicial esta bien. Lo voy a rescribir usando funciones y armándolo como corresponde. Es mas la parte grafica que es por el momento solo un dialogo lo voy a armar como la gente.

      Responder
      • 3. nikos3194nikos3194  |  julio 8, 2013 en 7:43 am

        Seguí así, que tu blog está cada vez más interesante 😉

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Trackback this post  |  Subscribe to the comments via RSS Feed


bueno

Páginas

julio 2013
L M X J V S D
« Jun   Ago »
1234567
891011121314
15161718192021
22232425262728
293031  

A %d blogueros les gusta esto: