LinuxLudus: aituo per programmino: creazione password ed md5sum
Federico Ramponi
federico.ramponi@gmail.com
Ven 19 Set 2008 15:49:44 CEST
Tieni presente due cose:
1) random.sample() sceglie elementi *distinti* dalla sequenza che gli
passi; se gli passi length==11 vedrai il problema, comunque una
password con caratteri distinti a priori non mi sembra una buona idea.
Usa random.choice() invece.
2) Le password di con soli caratteri numerici sono comunque poche. Usa
anche quelli alfabetici...
Detto questo, ecco lo script (ovviamente si puo` ancora migliorare):
import md5
import random
PASSWD_CHARACTERS="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
def genpasswd (length):
passwd=""
for dummy in range(length):
passwd += random.choice(PASSWD_CHARACTERS)
return passwd
# stessa roba ma piu` concisa
#def genpasswd2 (length):
# return ''.join( (random.choice(PASSWD_CHARACTERS) for dummy in
range(length)) )
def genlist (nrecords, passwd_length):
passwd_list = []
for dummy in range(nrecords):
new_passwd = genpasswd(passwd_length)
new_md5 = md5.md5(new_passwd).hexdigest()
record = (new_passwd, new_md5)
passwd_list.append (record)
return passwd_list
def genfile (filename, nrecords=1, separator=';', passwd_length=8):
passwd_list = genlist(nrecords, passwd_length)
passwd_file = open(filename, "w") # apre in scrittura
for record in passwd_list:
passwd_file.write( "%s%s%s\n" % (record[0], separator, record[1]) )
passwd_file.close()
if __name__ == "__main__":
genfile ("prova", 4)
ciao,
r.
Maggiori informazioni sulla lista
linuxludus