""" Generación de claves seguras a partir de un nombre de usuario y una clave maestra. Jaime Suarez <mcripto@bigfoot.com> 2003 en http://elparaiso.mat.uned.es """ import base64 import getpass import sha import sys def genera_clave(username, clavemaestra, longitud): """Produce a partir de un nombre de usuario y una clave maestra, una clave de longitud hasta 27 caracteres """ m = sha.new() m.update(username) m.update(clavemaestra) cadena = m.digest() cadena = base64.encodestring(cadena) return cadena[:longitud] def main(): if len(sys.argv) > 1: lonClave = int(sys.argv[1]) else: lonClave = 10 u = raw_input("Nombre de usuario: ") s = getpass.getpass("Clave maestra : ") t = getpass.getpass("Confirme clave: ") if s != t : print "Las claves no coinciden." else: print "Clave: ", genera_clave(u, s, lonClave) if __name__ == '__main__': main()