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??