FlaPer87 - import freedom; print everything

  • galería de imagenes
  • presentaciones
  • proyectos
  • copyright
  • contacto
  • acerca de...
Home

Google Adsense

Navigation

  • Recent posts

User login

  • Request new password

Generando Contraseñas con Python

Submitted by flaper87 on Mon, 07/02/2007 - 20:15.

EL otro día, me encontraba realmente fastidiado, y con la necesidad de crearme una contraseña nueva para mi usuario, así que como tenia la imaginación realmente apagada, me dedique a hacer un generador de contraseñas con este maravilloso lenguaje.

Primero que nada hay que entender algo, las contraseñas para que sean buenas y difíciles de descifrar, deben contener números, letras (mayúsculas y minúsculas) y signos de puntuación (también conocidos como signos especiales) mezclados dentro de ella. También se recomienda que sean bastante largas y que no tengan relación con nuestro entorno.

OJO: No voy a explicar todo lo que hace el script PyGenPass, solamente explicare como toma aleatoriamente la cantidad de digitos que queramos. El codigo puede descargarse desde AQUI

AL GRANO!!!

Primero importamos las 2 librerías que necesitamos:

>>>import string
>>>from random import choice

Luego lo que hice fue lo siguiente, sin necesidad de librerías extras que instalar, tome la lista de letras, números y signos especiales ofrecida por la librería string de python y las almacene en tres variables distintas para poder escoger desde ellas aleatoriamente lo que necesitara, de la siguiente manera:

>>>letras = string.letters
>>>numeros = string.digits
>>>signos = string.punctuation

Después de tener esas variables definidas podemos generar la contraseña iterando a través de las variables mientras seleccionamos un valor de los que contenga, así:

>>> print ''.join(choice([choice(letras),choice(numeros),
... choice(especiales)]) for x in range(10))

Donde esta N colocamos la longitud que queremos que tenga nuestra contraseña, si la queremos de 4 caracteres le colocamos 4.

Esta es una forma comprimida y corta para generar una contraseña con python, pero si quieren ser mas estrictos e indicarle el numero de letras, dígitos o signos especiales que quieren que tenga, les recomiendo que le den un ojo al código.

El código lo pueden descargar desde aqui, pueden leerlo, usarlo, modificarlo y distribuirlo a su gusto, es un poco mas largo debido a las opciones que quise agregarle y a que no quise hacer el código tan comprimido como en el ejemplo mostrado. A su vez si desean, pueden instalarlo de la siguiente forma (solo los que usen GNU/Linux ya que lo instala en /usr/bin), primero descompriman el .zip y luego desde la carpeta en donde se encuentre el código hagan como superusuarios:

# python PyGenPass.py -i
ó
# python PyGenPass.py --install

Luego de instalado, pueden darle uso simplemente escribiendo en la terminal pygenpass (esto si lo pueden hacer como usuario normales) y para poder usar las opciones vean la ayuda pygenpass -h.

Espero que les halla servido, cualquier cosa no duden en comentar.

Saludos

  • GNU/Linux
  • Python

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
5 + 2 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.

Search

  • a11y-en
  • a11y-es
  • Anuncios
  • ArchLinux
  • curiosidades
  • Debian
  • Docbook
  • Drupal
  • English
  • Enlightenment
  • Español
  • Eventos
  • GNU/Linux
  • Italiano
  • Latex
  • mouseTrap
  • opencv
  • Poesias
  • Python
  • Reflexiones
  • Subversion
  • Tiflotecnología
  • Ubuntu
  • Uncategorized
  • Web
  • wordpress

Twitter Updates

Twitter Logo

    follow me on Twitter



    • galería de imagenes
    • presentaciones
    • proyectos
    • copyright
    • contacto
    • acerca de...