[Python] ¿?convertir ascii a hex en python¿?

Iniciado por nacho87, 21 Febrero 2009, 16:12 PM

0 Miembros y 1 Visitante están viendo este tema.

nacho87

Hola! estoy haciendome un pequeño script en python para que coja un archivo, decodifique una parte de cada linea de base64 y luego lo convierta el resultado a hexadecimal. El problema es que no se que función hay que usar en python para convertir caracteres ascii a hexadecimales...
la funcion hex creo que sólo sirve para números. Espero que me podais ayudar.
Gracias!!

Novlucker

Primero lo conviertes a ascii/integer, y luego lo pasas a hexadecimal  :P

Ejemplo:
Código (python) [Seleccionar]
cadena = "foro.elhacker.net"
for i in range(len(cadena)):
print(hex(ord(cadena[i])))


Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

nacho87

Algo así había conseguido con éste código:
import base64

txt = open("archivo", "r")
for l in txt.xreadlines():
l = base64.decodestring(l[-29:-1])
for c in l:
print hex(ord(c))


pero la cuestion es que yo quiero que me convierta cada cadena que le paso con "l", no cada caracter... o en caso de que no se pueda convertir una cadena entera, tal vez me puedan decir si hay alguna forma de ordenar los caracteres para que me salga en cada línea la correspondiente cadena.
Ah y gracias por contestar!!

Novlucker

Para convertir a hexadecimal debes de hacerlo caracter a caracter, no se puede convertir una cadena todo de una  :P

Citaro en caso de que no se pueda convertir una cadena entera, tal vez me puedan decir si hay alguna forma de ordenar los caracteres para que me salga en cada línea la correspondiente cadena.
Esto no lo entendí  :xD
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

nacho87

ya lo solucione.jeje.
la cuestion es que tenia que leer los users y los hashes de un archivo de texto, dcodificar los hashes de base64 y convertir el resultado a hexadecimal. lo que pasaba es que al hacerlo con archivo.write() me escribia todo en la misma linea pero ya encontre la forma de meter el salto de linea correctamente.jejeje.

Novlucker

Ahora entendí lo que preguntabas  :D, era sencillo, pero ya solucionado  :xD

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein