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