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