• Martes 18 de Junio de 2024, 13:34

Autor Tema:  Módulo Md5  (Leído 1661 veces)

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Módulo Md5
« en: Lunes 2 de Octubre de 2006, 16:22 »
0
Miren este mismo código en 2 IDE's diferentes:
Código: Text
  1. import md5
  2. m = md5.new()
  3. m.update('lerolero')
  4. var = m.digest()
  5. print var
  6.  
Con el Shell de Python que viene con Linux me muestra esto por pantalla:
�j��P� ���O���
Y pos se ve horrible y no lo puedo traducir.
El problema viene cuando lo quiero imprimir en un editor gráfico como Pycrust o en un TextCtrl de un frame wxPython, ya que me saca este error.

Cita de: "Error PyCrust-wxPython"
Traceback (most recent call last):
  File "<input>", line 1, in ?
  File "/usr/lib/python2.3/site-packages/wx-2.6-gtk2-unicode/wx/py/shell.py", line 858, in writeOut
    self.write(text)
  File "/usr/lib/python2.3/site-packages/wx-2.6-gtk2-unicode/wx/py/shell.py", line 695, in write
    self.AddText(text)
  File "/usr/lib/python2.3/site-packages/wx-2.6-gtk2-unicode/wx/stc.py", line 1124, in AddText
    return _stc.StyledTextCtrl_AddText(*args, **kwargs)
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-1: invalid data
Entienden cual es el error?

Gracias Chao
El pasado son solo recuerdos, el futuro son solo sueños

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Módulo Md5
« Respuesta #1 en: Lunes 2 de Octubre de 2006, 18:32 »
0
Por ayuda de nuestro moderador NRM, quien me explico que existe la función 'hexdigest()', que sirve para convertir el valor que se genera al pasar la cadena de hexa a decimal y de ahi convertirla a ASCII (jejeje no dijo todo eso yo lo deduje), 'tons podemos hacerlo de esta manera y funcionara.
Código: Text
  1. import md5
  2. m = md5.new()
  3. m.update('lerolero')
  4. var = m.hexdigest()
  5. print var
  6.  
  7.  
Código: Text
  1. #LO QUE YO TRATABA DE HACER
  2.  
  3. # -*- coding: ISO-8859-1 -*-
  4. #!/usr/bin/python2.3
  5. #Ejemplo hecho por RadicalEd
  6.  
  7. import wx
  8. import md5
  9.  
  10. app = wx.App()
  11. m = md5.new()
  12. m.update('lero lero')
  13. var = m.hexdigest()
  14. dlg = wx.MessageDialog(None, var, u'Ejemplo', wx.OK | wx.ICON_INFORMATION)
  15. salida = dlg.ShowModal()
  16.  
El problema sigue siendo que no tengo Unicode  :( y no puedo imprimir de esa forma, alguién mi puede explicar como hacerlo.

PD: Es mentira que Linux utiliza md5 para encriptar sus claves
El pasado son solo recuerdos, el futuro son solo sueños