Codificador de base64 en python

Iniciado por SBlast, 24 Noviembre 2007, 23:04 PM

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

SBlast

Tutorial de creacion de un codificador de base64 en python

#==========================================
# 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:

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 :
             
txtfile = "archivo.txt"    

y luego ponemos la funcion que abre y lee el archivo y lo codifica a base64

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 :

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)

(open(txtfile,"rb").read())

en "txtfile" llamamos a la variable que contiene archivo.txt

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 :
(open(txtfile,"rb").read())


eso lo abre el archivo :
open(txtfile,"rb")


y esto lee el archivo:
read()

y luego ponemos que imprima el resultado codificado  en la pantalla :
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

filename = "encoded.txt"

bueno luego ponemos la parte de que abre el archivo y escribe el resultado y lo guarda.


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

try:  

ejm:

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 :

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) :

txt = open(filename, "w")  

esto escribe el contenido de la variable "txt_text" osea el resultado codificado :

txt.write(txt_text)  

y con esto cerramos el archivo :

txt.close()

mensaje de error cuando no se puede guardar el archivo de texto :

except IOError:
   print"el archivo %s no fue guardado!" % filename


mensaje cuando el archivo se guardo el archivo de texto correctamente :

else:
   print"el archivo %s se guardo correctamente!" % filename



el code completo (bien comentado XD ) :




#!/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
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]*:.