[Python] aituo per programmino: creazione password ed md5sum
Alessandro Dentella
sandro a e-den.it
Ven 19 Set 2008 15:31:17 CEST
On Fri, Sep 19, 2008 at 02:39:54PM +0200, Valerio Pachera wrote:
> Ciao a tutti, è un po' che non metto mano a python e sono comunque un novellino.
> Ho una necessità pratica da usare come esercizio per imparare qualcosa
> di più di python:
>
> volgio fare un piccolo script per generare delle password ed il relativo md5.
> Come input deve prendere i paramteri "numero di password da creare",
> "il nome del file" dove salvarle ed il "separatore" usato per separare
> le password e l'md5 nel file che verrà scritto.
>
> Ho creato lo script ma NON SO COME SCRIVERE SU UN FILE IL RISULTATO.
> ecco lo script:
>
> ----------
> # coding=utf-8
> import md5
> import random
>
> def genpasswd (lenght=8):
> passwd=""
> for num in random.sample(range(0,10), lenght):
> passwd += str(num)
> return passwd
>
> def genlist (records, separator):
> c = 0
> passwd = ""
> md5sum = ""
> record = []
> passwd_list = []
> while c < records:
> new_passwd = genpasswd()
> new_md5 = md5.new (new_passwd).hexdigest() + separator
> new_passwd += separator
> record = [new_passwd, new_md5]
> passwd_list.append (record)
> c += 1
> return passwd_list
>
> def genfile (filename, records=1, separator=';'):
> passwd_list = genlist(records, separator)
> print "devo scrivere i seguenti record sul file ", filename
> for record in passwd_list:
> #scrivi i record su un file di testo
> print record
una roba così? oltre ad 'open' che dovresti vedere documentata da tante
parti, nota l'uso di join, operatore di una stringa
def genlist (records, separator):
c = 0
passwd = ""
md5sum = ""
record = []
passwd_list = []
while c < records:
new_passwd = genpasswd()
new_md5 = md5.new (new_passwd).hexdigest()
passwd_list.append(separator.join([new_passwd, new_md5]))
c += 1
return passwd_list
def genfile (filename, records=10, separator=';'):
passwd_list = genlist(records, separator)
f = open(filename, 'w')
#scrivi i record su un file di testo
f.write("\n".join(passwd_list))
f.write('\n')
f.close()
Maggiori informazioni sulla lista
Python