Hace poco publique un codigo para encriptar palabras y "mejore" el codigo gracias a los consejos de sthefano02...
Aqui el code...
#!/bin/Python
# -*- coding: cp1252 -*-
import sys, base64, hashlib, hmac
from string import maketrans
#Codificacion con maketrans
ZtuX=maketrans("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789","m0b1c2z3k4h5f6s7p8i9y0rewqQW]RT[UI$%A(D-G)JK<Z#CVB/M@&\*.;_^{}")
#Decodificación con makeTrans
Ztux=maketrans("m0b1c2z3k4h5f6s7p8i9y0rewqQW]RT[UI$%A(D-G)JK<Z#CVB/M@&\*.;_^{}","abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
def _md5(palabra):
return hashlib.md5(palabra).hexdigest()
def code_base64(palabra):
return base64.b64encode(palabra)
def decode_base64(palabra):
return base64.b64decode(palabra)
def ztux(palabra):
return palabra.translate(ZtuX)
def dztux(palabra):
return palabra.translate(Ztux)
def sha1(palabra):
return hashlib.sha1(palabra).hexdigest()
def sha256(palabra):
return hashlib.sha256(palabra).hexdigest()
def sha384(palabra):
return hashlib.sha384(palabra).hexdigest()
def sha512(palabra):
return hashlib.sha512(palabra).hexdigest()
def Hmac(palabra):
return hmac.new(palabra).hexdigest()
def run():
ver='2.0'
if (len(sys.argv)==1) or sys.argv[1]=="-h" or sys.argv[1]=="--help":
print """
===========================================
ZtuX
===========================================
Visita: http://z0kw3r-syst3m.blogspot.com/
===========================================
>>>Modo de uso: cript.py [Palabra] [Hash]
>>>Ejemplo: cript.py Encriptar_esto -md5
-h Muestra esto en pantalla
-v Muestra la Version del Programa
-md5 Codifica en MD5
-base64 Codifica en base64
-dbase64 Decodifica en base64
-ztux Codifica en ZtuX
-dztux Decodifica ZtuX
-sha Codifica en sha1
-sha256 Codifica en sha256
-sha384 Codifica en sha384
-sha512 Codifica en sha512
-hmac Codifica en hmac
"""
elif sys.argv[1]=='-v' or sys.argv[1]=='--version':
print "Cript version: " + ver + "\nAutor: ZtuX"
elif sys.argv[2]=='-md5':
palabra=sys.argv[1]
print 'Texto Codificado: %s'%_md5(palabra)
elif sys.argv[2]=='-base64':
palabra=sys.argv[1]
print 'Texto Codificado: %s'%code_base64(palabra)
elif sys.argv[2]=='-dbase64':
palabra=sys.argv[1]
print 'Texto Decodificado: %s'%decode_base64(palabra)
elif sys.argv[2]=='-ztux':
palabra=sys.argv[1]
print 'Texto Codificado: %s'%ztux(palabra)
elif sys.argv[2]=='-dztux':
palabra=sys.argv[1]
print 'Texto Decodificado: %s'%dztux(palabra)
elif sys.argv[2]=='-sha':
palabra=sys.argv[1]
print 'Texto Codificado: %s'%sha1(palabra)
elif sys.argv[2]=='-sha256':
palabra=sys.argv[1]
print 'Texto Codificado: %s'%sha256(palabra)
elif sys.argv[2]=='-sha384':
palabra=sys.argv[1]
print 'Texto Codificado: %s'%sha384(palabra)
elif sys.argv[2]=='-sha512':
palabra=sys.argv[1]
print 'Texto Codificado: %s'%sha512(palabra)
elif sys.argv[2]=='-hmac':
palabra=sys.argv[1]
print 'Texto Codificado: %s'%Hmac(palabra)
else:
print 'Debes indicar Frase y hash a encriptar...'
print 'Para mas informacion teclea -h o --help o -ayuda'
run()
Gracias a sthefano02 por sus consejos xD
Mejoró bastante!
Otro simple consejo, para no molestarte tanto. Puedes ahorrarte un par de lineas, no solo con esto, en general.
import sys
import base64
import hashlib
Lo reemplazamos por:
import sys, base64, hashlib
Saludos y espero que sigas aprendiendo!
Naa, no me molesta!! :D
al contrario agradesco tus consejos 8)
Muy bueno [Z]tuX.
Sthefano02, como se nota que en la vida no pagan por cantidad de caracteres ;D, es una cosa de achicar codigo
Se puede tocar mucho mas, todo es por achicar el código y respetar mas la ventaja que nos da python, de tener un código que sea facil de leer.
Bueno el código, lo que sugiero es que lo comentes para aquellos que no entiendan la sintaxis.
Thanks