8.4 crypt -- Funzione per verificare le password Unix

Disponibilit�: Unix.

Questo modulo implementa un'interfaccia della procedura crypt(3), che � una funzione di hash a senso unico basata su un algoritmo DES modificato; vedete anche la relativa pagina man di Unix per ulteriori dettagli. Tra i possibili utilizzi annoveriamo la possibilit� degli script Python di accettare password digitate dall'utente o quella di tentare la rottura di password Unix tramite un dizionario.

crypt( word, salt)
word sar� in genere una password utente digitata al prompt o in un'interfaccia grafica. salt di solito � una stringa casuale di due caratteri utilizzata per perturbare l'algoritmo DES in una delle sue 4096 modalit�. I caratteri in salt devono essere compresi nell'insieme [./a-zA-Z0-9]. Questo metodo restituisce l'hash della password sotto forma di stringa, che sar� composta da caratteri presi dallo stesso alfabeto di salt (i primi due caratteri rappresentano salt stesso).

Un semplice esempio ne illustra un utilizzo tipico:

import crypt, getpass, pwd

def login():
    username = raw_input('Python login:')
    cryptedpasswd = pwd.getpwnam(username)[1]
    if cryptedpasswd:
        if cryptedpasswd == 'x' or cryptedpasswd == '*': 
            raise "Spiacente, al momento non � disponibile il supporto per le password shadow"
        cleartext = getpass.getpass()
        return crypt.crypt(cleartext, cryptedpasswd[:2]) == cryptedpasswd
    else:
        return 1
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.