Encryptacion

Mario Lacunza mlacunza en gmail.com
Jue Nov 16 00:53:20 CET 2006


Holas,

Les adjunto un pequeño modulo de encriptacion q uso el modulo Cryto de
Python.

SI ejecuto este modulo no tengo ningun problema al
encryptar-desencryptar las cadenas.

Sin embargo cuando a esta orden:

    x= c.Desencryptar(cc)

en vez de pasarle el parametro le quiero pasar el resultado de la
encryptacion como texto:

    x= c.Desencryptar(';U[Y)Gqq')

no me retorna lo esperado:frmbackup.

Alguna idea de porque esto?

Gracias!



# -*- coding: utf8 -*-#
#-----------------------------------------------------------------------------
# Name:        enc.py
# Purpose:
#
# Author:      <Mario Lacunza, Ricardo Chang>
#
# Copyright:   (c) 2006
# Licence:     <GPL>
#-----------------------------------------------------------------------------


__author__='Mario Lacunza <mlacunza en gmail.com>'
__version__='0.9'



from Crypto.Cipher import DES

"""Modulo que encrypta y desencrypta una cadena pasada usando el
algoritmo DES.

    Este es implementado por Python a travez del modulo Criptografico.
    Paquete Ubuntu Edgy 6.10 [python-crypto].
"""

class Cripto:
    """Clase que maneja la encryptación usando el Algoritmo DES.
        Hay que proporcionarle una Key al constructor de la clase.
    """

    #Caracter unico para cumplir con norma DES que la cadena a encryptar
debe
    #ser de 8 bits
    cRelleno='*'
#-------------------------------------------------------------------------------

    def __init__(self, Key):
        """Se le debe pasar el Keycode de encryptación."""
        self.obj=DES.new(Key)

#-------------------------------------------------------------------------------

    def Encryptar(self,mCadena):
        longitud = len(mCadena)
        if longitud == 0:
            return False
        else:
            resto = longitud%8
            if resto > 0:
                longitud = longitud + (8-resto)
                mCadena=mCadena.ljust(longitud, self.__class__.cRelleno)
            try:
                Cifrado=self.obj.encrypt(mCadena)
                return Cifrado
            except:
                return False


#-------------------------------------------------------------------------------

    def Desencryptar(self,mCadena):
        try:
            msg=self.obj.decrypt(mCadena)
            msg=msg.rstrip(self.__class__.cRelleno)
            return msg
        except:
            return False

#-------------------------------------------------------------------------------

if __name__ == '__main__':

    """Ejemplo de Uso."""

    #Se le pasa a la clase el Keycode
    c=Cripto('mlacunza')
    #Cadena de Prueba:
    cc=c.Encryptar('frmbackup')
    #Se imprime la cadena encryptada
    print cc
    #Se imprime la cadena original partiendo de la encryptada
    x= c.Desencryptar(cc)
    print x




Mi configuracion/My config:

Ubuntu Edgy Eft 6.10
Linux Kernel 2.6.17-10-386
Gnome 2.16.1
Python 2.4.4c1
wxPython 2.7.2.0 Unicode
Boa Constructor cvs 0.5.2

-- 
Saludos / Best regards 

Mario Lacunza Vásquez 
Desarrollador de Software - Webmaster 
Desarrollador 2 Estrellas VS2005

Website        : http://mlacunzav[DOT]cogia[DOT]net 
Email          : mlacunza[AT]gmail.com
Email          : mario_lacunza[AT]yahoo.es 
Blog           : http://mlacunza[DOT]blogspot.com
Lima - Peru
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es