Un proyecto que dejé pendiente hace tiempo, ahora con mejoras en el código y ahora trabaja bajo Python 3.x
#!/usr/bin/env python3
#It Works with Python 3.x.x
# -*- coding:UTF-8 -*-
import sys, base64, hashlib, hmac
name = "CifraMe"
ver = "2.7"
author = "@_ZtuX_"
listHash=["-md5","-sha","-sha256","-sha384","-sha512","-hmac","-b64","-db64"]
def banner():
print ("""
___ _________ _ __ __
| _|___ /_ | | | \ \ / /
| | / / | | | |_ _ _ \ V /
| | / / | | | __| | | | | / \
| | ./ /___ | | | |_ | |_| | / /^\ \
| |_\_____/_| | \__| \__,_| \/ \/
|___| |___|
""")
class CifraMe:
def __init__(self,string,hash):
self.string=string
self.hash=hash
def md5(self):
return (hashlib.md5((self.string).encode()).hexdigest())
def sha(self):
return hashlib.sha1((self.string).encode()).hexdigest()
def sha256(self):
return hashlib.sha256((self.string).encode()).hexdigest()
def sha384(self):
return hashlib.sha384((self.string).encode()).hexdigest()
def sha512(self):
return hashlib.sha512((self.string).encode()).hexdigest()
def Hmac(self):
return hmac.new((self.string).encode()).hexdigest()
def code_base64(self):
new = base64.b64encode((self.string).encode('ascii'))
return (new.decode())
def decode_base64(self):
new = " "
try:
new = base64.b64decode((self.string).encode('ascii'))
except:
print ("Palabra erronea")
return (new.decode())
@property
def tamanioString(self):
return len(self.string)
def showHelp():
print ("""
_ __ ______ ___ ___
(_)/ _| | _| \/ | |_ |
___ _| |_ _ __ __ _| | | . . | ___ | |
/ __| | _| '__/ _` | | | |\/| |/ _ \| |
| (__| | | | | | (_| | | | | | | __/| |
\___|_|_| |_| \__,_| |_\_| |_/\___|| |
|___| |___|
==============================================
Visita: http://ztux.blogspot.com/
==============================================
[+] Modo de uso: %s [Palabra] [Hash]
[+] Ejemplo: %s Cifrar_esto -md5
-h Muestra esto en pantalla
-v Muestra la Version del Programa
-md5 Cifrar en MD5
-sha Cifrar en sha1
-sha256 Cifrar en sha256
-sha384 Cifrar en sha384
-sha512 Cifrar en sha512
-hmac Cifrar en hmac
-b64 Codifica en base64
-db64 Decodifica en base64
"""%(sys.argv[0],sys.argv[0]))
def main():
if (len(sys.argv)==1) or sys.argv[1].lower()=="-h" or sys.argv[1].lower()=="--help":
showHelp()
elif (len(sys.argv) > 3):
print ("ERROR...\nModo de uso: %s [Palabra] [Hash]"%(sys.argv[0]))
elif (sys.argv[1].lower()=='-v' or sys.argv[1].lower()=='--version'):
print ("%s version: %s\nAutor: %s"% (name,ver,author))
elif (sys.argv[1].lower()=='-b'):
banner()
elif (len(sys.argv)==3):
"""Si hay tres argumentos entonces podemos cifrar a gusto"""
#Checks if second argument is correct
hash = sys.argv[1].lower()
string = sys.argv[2]
if (hash in listHash):
cadena = CifraMe(string,hash)
#Identify Hash
pos = listHash.index(hash)
if (pos==0):
print (cadena.md5())
elif (pos==1):
print (cadena.sha())
elif (pos==2):
print (cadena.sha256())
elif (pos==3):
print (cadena.sha384())
elif (pos==4):
print (cadena.sha512())
elif (pos==5):
print (cadena.Hmac())
elif (pos==6):
print (cadena.code_base64())
elif (pos==7):
print (cadena.decode_base64())
return (0)
else:
print ("La hash %s no es valida" % (hash) )
return (-1)
else:
print ("Error: usa -h o --help para mas información")
if __name__ == '__main__':
main()
Captura:
(http://4.bp.blogspot.com/-SLc_2dpZ0SA/UWmL1wEah3I/AAAAAAAABMg/Q-7HhqnXqUs/s320/jes.png)
Salud[OS]
Tiempo sin verte por el foro bro!
Excelente aporte! Muchas gracias!
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
Tiempo sin verte por el foro bro!
Excelente aporte! Muchas gracias!
Si verdad, pues por acá estaremos de nuevo =)
Un Saludo
El viejo ztux por acá ;D muy bueno brot, en un rato me pongo a jugar :P
Zalu2
No tienes permitido ver los links.
Registrarse o Entrar a mi cuenta
El viejo ztux por acá ;D muy bueno brot, en un rato me pongo a jugar :P
Zalu2
Gracias bro! Tiempo sin estar por acá!
Un saludo!! 8)