Re: Script CGI

トップ ページ

このメッセージに返信
著者: Philippe BEAU
日付:  
To: JérômeKieffer
CC: guilde
題目: Re: Script CGI
Sinon, pour ma part, je l'ai aussi en PHP :-)

Cdt

Philippe,

> On Thu, 7 Jul 2005 23:06:26 +0200
> Frédéric <frederic.mantegazza@???> wrote:
>
>> On Jeudi 07 Juillet 2005 21:40, Jérôme Kieffer wrote:
>>
>> > par contre cela se fait super bien en python-cgi avec un hasheur md5
>> > ou sha1. j'en ai un si il te faut en python.
>>
>> Je prend ! Tu peux me l'envoyer ?
>
> exemple de code .... pas pas du CGI mais plutot du bon cron.
>
> Il faut bien avouer que j'ai copié le code de authlib .... mais j'ai le
> droit : c'est de la LGPL.
>
> la bibliotheque authlib se trouve dans ce package :
> http://www.terre-adelie.org/sesame/sesame-0.5.tar.gz
>
> #!/usr/bin/python
>
> import string,whrandom,smtplib,authlib,os,tempfile,shutil
>
>
> shadow="/etc/shadow"
> tmpdir="/tmp"
> user=""
> fromadd="root@localhost"
> toadd="root@localhost"
>
>
>
> def generatePassword(minlen=7, maxlen=10):
>         chars = string.letters + string.digits
>         passwd = ""
> # determine password size (randomly, but between the given range)
>         passwd_size = whrandom.randint(minlen, maxlen)
>         for x in range(passwd_size):
> # choose a random alpha-numeric character
>                 passwd += whrandom.choice(chars)
>         return passwd

>
> def sendpass(password):
>         msg=("From: %s\r\nTo: %s\r\nSubject: Changement de mot de
> passe\r\n\r\n" % (fromadd, toadd))
>         msg=msg+"Serveur :  \nAdresse : \nProtocol : ftp\nPort :
> 21\nCompte :  \nMot de passe : "+password
>         server=smtplib.SMTP('localhost')
>         #server.set_debuglevel(1)
>         server.sendmail(fromadd,toadd,msg)
>         server.quit()

>
> def set_passwd(user, passwd):
>     cyptpass=authlib.passcrypt(Pass, method='md5')
>     shadowfile=open(shadow,"r")
>     fd,tmpfile=tempfile.mkstemp(".tmp","shadow",tmpdir)

>
>     for  ligne in shadowfile.readlines():
>                 mots=string.split(ligne,":",2)
>                 if mots[0]!=user:
>                         os.write(fd,ligne)
>                         continue
>                 mots[1]=cyptpass
>                 ligne=string.join(mots,":")
>                 os.write(fd,ligne)
>     os.close(fd)
>     shutil.move(tmpfile,shadow)

>
>
> if __name__ == '__main__':
>     Pass=generatePassword()
>     set_passwd(user,Pass)
>     sendpass(Pass)

>
>
>
> A++
>
> --
> Jérôme Kieffer
>
>