Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Runex en 8 Abril 2012, 15:09 pm



Título: [Python] Ascii To Hex y Hex to Ascii
Publicado por: Runex en 8 Abril 2012, 15:09 pm
Sé que no es nada nuevo, es más se suelen subir bastantes programas como éste, pero quería hacer otro aporte y aunque por el momento es bastante simple, lo he hecho en 5 minutos, y en una media hora más, tendré el programa con un aspecto visual más o menos bonito :).

Edit: He encontrado un problema con la conversión de Hex a Ascii, tengo más o menos claro el algoritmo de conversión, he intentado contar cada numero de la palabra en hex y añadirlo a una lista vacía, así cuando la longitud de la lista sea = 2, los numeros se convierten a ascii con chr() y se añaden a una variable de almacenamiento, resultado="". Pero hay algo que me está mareando con tanto self. por ahi xD :)

Os dejo aquí el simple código:

Código
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. from Tkinter import *
  4. import string
  5. class programa
  6.  
  7. def __init__(self):
  8. self.root = Tk()
  9. self.root.title("Conversor Ascii")
  10. self.root.maxsize(width="500",height="500")
  11. self.root.minsize(width="500",height="500")
  12. self.a = StringVar()
  13. self.b = StringVar()
  14. self.entradascii = Entry(self.root,textvariable=self.a,width=20)
  15. self.button = Button(self.root,text="To Hex",command = self.convertirhex)
  16. self.entradahex = Entry(self.root,textvariable=self.b,width=20)
  17. self.button2 = Button(self.root,text="To Ascii",command=self.convertirascii)
  18. self.entradahex.grid(row=3,column=0)
  19. self.button2.grid(row=3,column=1)
  20. self.entradascii.grid(row=0,column=0)
  21. self.button.grid(row=0,column=1)
  22. self.root.mainloop()
  23. def convertirhex(self):
  24. self.palabra = self.entradascii.get()
  25. self.resultado = ""
  26. for self.letra in self.palabra:
  27. self.resultado = self.resultado + hex(ord(self.letra))
  28. self.resultado = "0x" + self.resultado.replace("0x","")
  29. Label(self.root,text="Hex: " + self.resultado).grid(row=0,column=3)
  30. def convertirascii(self):
  31. self.palabra = self.entradahex.get()
  32. self.lista = []
  33. self.resultado = ""
  34. for self.letra in self.palabra:
  35. self.lista.append(int(self.letra))
  36. if len(self.lista)==2:
  37. self.par = string.join(self.lista)
  38. self.resultado = self.resultado + chr(self.par)
  39. print self.resultado
  40.  
  41. instancia = programa()
  42. instancia
  43.  
  44.