lunes, 23 de febrero de 2015

Passwords con caracteres aleatorios

En muchas ocasiones, cuando tenemos que crear un servicio que pide usuario/password, tendemos al uso de passwords simples o poco elaboradas. Tanto si es para un uso personal como si es para compartir información entre usuarios (este, quizás, más importante aún securizar), las password simples o basadas en diccionarios no son del todo una buena idea.

Este pequeño script de python genera una clave de N caracteres aleatorios (pasados por argumento, o 10 en su defecto), que puede añadir símbolos indicando el argumento "@".

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import string,random,sys

dictionary = string.ascii_letters + string.digits
dictionary_extra = '@.-!~'

N = 10
if(len(sys.argv)>1):
 if(sys.argv[1][0]=='@'):
  dictionary += dictionary_extra
  if(len(sys.argv[1])>1): N=int(sys.argv[1][1:])
 else:
  N = int(sys.argv[1])
print ''.join(random.SystemRandom().choice(dictionary) for _ in range(N))

Ejemplos de uso:

$ python randompasswd @20
Dk5nl8w~.WxrkEj94!V~

$ python randompasswd @
0KAiU0z@rC

$ python randompasswd 
eqUL9Kaw22G1QFc
Share to Facebook Share to Twitter Email This Share on Google Plus Share on LinkedIn

No hay comentarios:

Publicar un comentario