elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Codificador de base64 en python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Codificador de base64 en python  (Leído 5,299 veces)
SBlast

Desconectado Desconectado

Mensajes: 18


Amante de los Bytes...XD


Ver Perfil WWW
Codificador de base64 en python
« en: 24 Noviembre 2007, 23:04 pm »

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:

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


« Última modificación: 14 Abril 2020, 04:47 am por SBlast » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programa codificador de texto a base64 estandar. [C/C++]
Programación C/C++
glas 0 5,308 Último mensaje 3 Octubre 2010, 02:11 am
por glas
Codificador de mensagens!!! =]
Programación C/C++
didinho 0 1,710 Último mensaje 26 Diciembre 2011, 14:44 pm
por didinho
[AYUDA][PYTHON] Ayuda para pasar un archivo ZIP a Base64 y viceversa
Scripting
Noxware 2 3,793 Último mensaje 9 Julio 2014, 18:37 pm
por Noxware
Codificador
Scripting
jalbtercero 1 1,754 Último mensaje 26 Mayo 2016, 04:50 am
por AlbertoBSD
Codificador [C++]
Programación C/C++
ianmorar03 3 2,652 Último mensaje 8 Agosto 2017, 02:07 am
por ianmorar03
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines