#==========================================
# Rafael Ramirez
# Sasser_Blaster 2007
# Codificador base64
# Lenguaje: Python
#==========================================
Agradecimientos: a Movaxes por resolverme mis dudas sobre python.
Este es un pequeño tutorial de python, el programa que haremos
sera simple ya que el proposito es demostrar como utilizar python
para crear un codificador de base64.
En este tutorial debes saber lo basico de python, si
aun no has leido ningun tutorial de python puedes leer este que esta echo por Guido van Rossum que es el creador de python:
http://pyspanishdoc.sourceforge.net/tut/tut.html
el programa hara lo siguiente :
va a leer el contenido de un archivo de texto y creara otro archivo de texto con el resultado de este codificado a base64.
Lo primero que necesitamos en nuestro programa es incluir
libreria que utilizaremos:
Código:
import base64
La libreria estandar de Python contiene un modulo para hacer conversiones entre binarios y ascii, para esto utiliza la codificacion Base64, con la cual podemos codificar cualquier archivo en caracteres ascii.
Una vez que tenemos la libreria que necesitamos creamos una variable que contiene el archivo a leer con su nombre y su extensión :
Código:
txtfile = "archivo.txt"
y luego ponemos la funcion que abre y lee el archivo y lo codifica a base64
Código:
txt_text = 'encoded_b64 = \\\n"""' + base64.encodestring(open(txtfile,"rb").read()) + '"""'
para eso lo asignamos a una variable "txt_text"
y ahi indicamos que habra el txtfile (archivo.txt) y codifique la cadena a base64 y el resultado lo ponga entre comillas """
bueno la funcion mas importante que codifica el archivo es esta :
Código:
base64.encodestring(open(txtfile,"rb").read())
con "encodestring" indicamos que codifique todo lo que esta en el archivo, y para poder abrir el archivo
para lectura o escritura, para eso utilizamos la funcion ‘open’ que recibe como
parametro varias opciones:
r = solo lectura
w = solo escritura (si el archivo existe lo elimina)
r+ = lectura y escritura
a = agrega nuevo contenido al final del archivo
b = archivo binario (Windows y Mac)
Código:
(open(txtfile,"rb").read())
en "txtfile" llamamos a la variable que contiene archivo.txt
Código:
txtfile = "archivo.txt"
y el parametro "rb" es un para leer y indicar que es archivo binario (Windows y Mac)
y read() es una funcion que lee el archivo
bueno en resumen XD
primero abre el archivo y luego lo lee :
Código:
(open(txtfile,"rb").read())
eso lo abre el archivo :
Código:
open(txtfile,"rb")
y esto lee el archivo:
Código:
read()
y luego ponemos que imprima el resultado codificado en la pantalla :
Código:
print txt_text
esto imprime en la pantalla el contenido osea el resultado de la variable "txt_text"
bueno hasta ahi el programa daria perfectamente pero para mayor comodidad pasaremos el resultado cifrado a un archivo de texto
primero asignamos una variable con el nombre y la extensión del archivo a crear
Código:
filename = "encoded.txt"
bueno luego ponemos la parte de que abre el archivo y escribe el resultado y lo guarda.
Código:
try:
txt = open(filename, "w")
txt.write(txt_text)
txt.close()
except IOError:
print"el archivo %s no fue guardado!" % filename
else:
print"el archivo %s se guardo correctamente!" % filename
bueno "try" hase una Prueba
Código:
try:
ejm:
Código:
a = 1
try:
# python ejecuta "prueba" este codigo
a = 1/0
except:
# esto se ejecuta si hubo error
print "1/0 dio error"
else:
# esto se ejecuta si no dio error
print "1/0 no dio error"
en resumen try hase una prueba y si esta bien muestra "else" y si esta mal muestra "except" .
esta es la funcion que abre y escribe el archivo de texto :
Código:
txt = open(filename, "w")
txt.write(txt_text)
txt.close()
esto abre el archivo de la variable "filename" y indica el parametro
w = solo escritura (si el archivo existe lo elimina) :
Código:
txt = open(filename, "w")
esto escribe el contenido de la variable "txt_text" osea el resultado codificado :
Código:
txt.write(txt_text)
y con esto cerramos el archivo :
Código:
txt.close()
mensaje de error cuando no se puede guardar el archivo de texto :
Código:
except IOError:
print"el archivo %s no fue guardado!" % filename
mensaje cuando el archivo se guardo el archivo de texto correctamente :
Código:
else:
print"el archivo %s se guardo correctamente!" % filename
el code completo (bien comentado XD ) :
Código:
#!/usr/bin/python
# encoding: utf-8
#------------------------------------------------------
# Rafael Ramirez
# Sasser_Blaster 2007
# Codificador base64
# Lenguaje: Python
#------------------------------------------------------
import base64 #importamos la libreria de base64
txtfile = "archivo.txt" #ponemos el archivo a cifrar
txt_text = 'encoded_b64 = \\\n"""' + base64.encodestring(open(txtfile,"rb").read()) + '"""' #indicamos que habra el txtfile (archivo.txt) y codifique la cadena a base64 y el resultado lo ponga entre comillas """
print txt_text #imprime en la pantalla txt_text que contiene el resultado codificado a base64
#opcional guarda el resultado codificado a un arhivo de texto
filename = "encoded.txt" #indicamos el archivo a crear
try:
txt = open(filename, "w") #abrimos el archivo encoded.txt y le asignamos el parametro w = solo escritura (si el archivo existe lo elimina)
txt.write(txt_text) #escribimos el contenido de la variable txt_text en el archivo de texto
txt.close() #indicamos la funcion ‘close’ que cierra los archivos con los datos guardados
#mensaje de error cuando no se puede guardar el archivo de texto
except IOError:
print"el archivo %s no fue guardado!" % filename
#mensaje cuando se puedo guardar el archivo de texto
else:
print"el archivo %s se guardo correctamente!" % filename
bueno para ejecutar el programa van a la consola y teclean
Código:
python b64.py
Nota: para que de el programa tienen que crear un archivo de texto con el nombre de archivo.txt y poner ahi lo que quieran codificar.
bueno eso es todo espero que les sirva
Saludos
.:*[S_B]*:.