""" Generación de claves seguras a partir de un nombre
de usuario y una clave maestra.
Jaime Suarez <mcripto@bigfoot.com> 2003
en http://www.matematicas.net """
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()