comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Pasar un texto a MD5 o a hexadecimal

  • 4 Respuestas
  • 3162 Vistas

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

Desconectado blozzter

  • *
  • Underc0der
  • Mensajes: 106
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • blozzter-blz
« en: Julio 10, 2011, 02:38:23 pm »
últimamente he estado utilizando mucho la conversión a código hexadecimal, así que escribí un programa que facilitara la tarea para no tener que estar ingresando a webs que hacen el trabajo. y para hacerlo más atractivo le incluí además la encriptación en md5.

estoy recién empezando en esto, así que criticas y sugerencias me vendrían bien.

ah, me olvidaba, estoy con el interprete de python 2.7 y 2.3. con estos me funciona, con versiones superiores creo que da problemas.


Código: Python
  1. # convertir un texto a MD5
  2. # o a hexadecimal
  3. # uso:
  4. #               python text-tool.py  -type  md5/hex  -text  texto-a-convertir
  5. # > blozzter
  6.  
  7. import sys, md5
  8.  
  9. def convert_md5(text):
  10.     encriptado = md5.new()
  11.     encriptado.update(text)
  12.     return encriptado.hexdigest()
  13.        
  14. def convert_hex(texto):
  15.         long = len(texto)
  16.         temp = ''
  17.  
  18.         for i in range(long):
  19.           temp += hex(ord(texto[i])) #convertimos a ascii y luego a hexadecimal
  20.  
  21.         hexadecimal = ''
  22.        
  23.         for i in range(len(temp) - 1): #limpiamos la cadena quitandole los '0x'
  24.           if temp[i] == '0' and temp[i + 1] == 'x':
  25.                 hexadecimal += temp[i + 2]
  26.                 hexadecimal += temp[i + 3]
  27.         return hexadecimal
  28.  
  29.  
  30. if (len(sys.argv) - 1) != 4:  #me aseguro que hayan sido 4 los argumentos entregados
  31.         print '> Error en la cantidad de parametros'
  32.         sys.exit()
  33.  
  34.  
  35. for arg in range(len(sys.argv) - 1):
  36.         try:
  37.                 if sys.argv[arg + 1] == '-type':
  38.                         tipo = sys.argv[arg + 2]
  39.                        
  40.                 if sys.argv[arg + 1] == '-text':
  41.                         texto = sys.argv[arg + 2]
  42.  
  43.         except:
  44.                 print '> Error en los parametros\n'
  45.                 print 'python text-tool.py  -type  md5/hex  -text  texto-a-convertir\n'
  46.                 sys.exit()
  47.  
  48. try:
  49.         if tipo == 'md5':
  50.                 en_md5 = convert_md5(texto)
  51.                 print '> ', en_md5
  52.  
  53.         if tipo == 'hex':
  54.                 en_hex = convert_hex(texto)
  55.                 print '> ', en_hex
  56.  
  57. except:
  58.         print '> Error en los parametros\n'
  59.         print 'python text-tool.py  -type  md5/hex  -text  texto-a-convertir\n'
  60.        
  61.                


demostraciones:

Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
C:\herramientas>python text-tool.py -type hex -text undercode
>  756e646572636f6465


Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
C:\herramientas>python text-tool.py -type md5 -text undercode
>  c7b5dc22ebc8e1d8f069ee1f2d340d57
« Última modificación: Julio 24, 2014, 02:23:41 pm por Expermicid »
¡< blozzter >!

Desconectado LucaSthefano

  • *
  • Underc0der
  • Mensajes: 399
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Julio 10, 2011, 05:14:26 pm »
Con versiones 3x dará problemas, ya que la sintaxis es incorrecta.

El código podemos decir que está bien, solo te falta respetar el ordenamiento de Python (abajo hacia arriba) y aprender a dejar el código limpio, ya que es una de las características más importantes del lenguaje.

Te reto a que sigas practicando, y espero ver mejoras de este código.

Saludos!

Desconectado blozzter

  • *
  • Underc0der
  • Mensajes: 106
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • blozzter-blz
« Respuesta #2 en: Julio 10, 2011, 07:45:47 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
Con versiones 3x dará problemas, ya que la sintaxis es incorrecta.

El código podemos decir que está bien, solo te falta respetar el ordenamiento de Python (abajo hacia arriba) y aprender a dejar el código limpio, ya que es una de las características más importantes del lenguaje.

Te reto a que sigas practicando, y espero ver mejoras de este código.

Saludos!

Disculpa, pero no comprendo que es lo que quieres decir con lo del 'ordenamiento' ni tampoco que parte(s) del código te parecen sucios.


saludos.
¡< blozzter >!

Desconectado JaAViEr

  • *
  • Underc0der
  • Mensajes: 163
  • Actividad:
    0%
  • Reputación 0
  • http://codigo.ga
    • Ver Perfil
    • Blog de Programación :: Python
« Respuesta #3 en: Julio 12, 2011, 10:16:35 pm »
CREO que con int("a",16) Puedes hacer lo mismo para pasar a HEX(base16)
No tienes permisos para ver links. Registrate o Entra con tu cuenta

Desconectado blozzter

  • *
  • Underc0der
  • Mensajes: 106
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • blozzter-blz
« Respuesta #4 en: Julio 13, 2011, 04:04:56 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
CREO que con int("a",16) Puedes hacer lo mismo para pasar a HEX(base16)

JaAViEr, creo que en C es posible hacer algo como lo que dices tú.

si lo hago en python me sale esto:

Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
>>> int("a", 16)
10

lo cual está mal, porque a la 'a' en hexadecimal le corresponde el valor 61 y no 10. lo cual me lleva a pensar que se puede hacer algo como esto:

Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
>>> int('a', 16) + 51
61

>>> int('e', 16) + 51
65

pero ese método funciona solo hasta la letra 'f', con la 'g' ya da error  ::)


saludos =)

¡< blozzter >!

 

¿Te gustó el post? COMPARTILO!



[Mi primer code] Cifrador de texto

Iniciado por KrossPock

Respuestas: 2
Vistas: 1172
Último mensaje Enero 30, 2014, 09:47:46 am
por CrazyKade