Programación Web y Scripting > Python
Ya Lo Terminé Por Fin
(1/1)
edurne:
Holaaa!! ya conseguí hacer mi servidor como deseaba. He utilizado el protocolo md5 y aunque sé que no se pueden transformar los mensajes de md5 para que sean entendibles (claramente ese es el fin del encriptamiento....) me gustaría visualizar la cadena de md5 en hexadecimal. Lo he intentado con infinidad de instrucciones, pero no tengo claro si al transformar una cadena a md5, lo que resulta es otro string, porque parece que las instrucciones para un string no valen en este caso.
Esto es lo que tengo:
value=md5.new(challenge[1:2]+contrasena+challenge[5:11]).digest()
print 'value resultado de aplicar el md5 a la response:', value
for c in range (0,len(value)-1):
print '%02X' % int(value[c])
pero me da el siguiente error:
value resultado de aplicar el md5 a la response: `¤ÞDãÕxÊò×þþ!M
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "cliente.py", line 64, in ?
crear_response()
File "cliente.py", line 53, in crear_response
print '%02X' % int(value[c])
ValueError: invalid literal for int():
Y si en lugar de eso, pongo simplemente:
value=md5.new(challenge[1:2]+contrasena+challenge[5:11]).digest()
print 'value resultado de aplicar el md5 a la response:', value
string.atoi(value, 2)
el error es el siguiente:
value resultado de aplicar el md5 a la response: `¨ëjanyÂÔ4#t~¸·9
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "cliente.py", line 63, in ?
crear_response()
File "cliente.py", line 52, in crear_response
string.atoi(value, 2)
File "/usr/lib/python2.1/string.py", line 214, in atoi
return _int(s, base)
ValueError: invalid literal for int(): `¨ëjanyÂÔ4#t~¸·9
Si alguien me puede ayudar se lo agradecería, qué tipo de resultado da el md5.new('').digest()?? cómo puedo cambiarlo a hexadecimal si es que se puede para visualizar esos caracteres de forma legible??
NRM:
Podrias utilizar el metodo hexdigest() del siguiente modo.
--- Código: Text ---import md5 m = md5.new()m.update ("texto")x = m.hexdigest()print x
Salida
--- Citar ---62059a74e9330e9dc2f537f712b8797c
--- Fin de la cita ---
Espero te sirva.
Saludos
edurne:
Muchas gracias, al final había optado por convertir primero cada cadena a int, luego cada int a hexadecimal y luego elemininar los dos primero caracteres de cada string hexadecimal y juntarlos en una nueva cadena.
Pero así es todo mucho más sencillo. Me ha sido de gran ayuda!!
Navegación
Ir a la versión completa