help to convert c++ fonction in python

Tim Roberts timr at probo.com
Sun Oct 18 00:15:51 CEST 2009


Toff <christophedeze at gmail.com> wrote:
>
>I'm trying to convert  2 c++ functions  in python
>
>they come from wpkg client
>https://wpkg.svn.sourceforge.net/svnroot/wpkg/wpkg-client/Sources/Components/XmlSettings.cpp
>
>they are
>CString CXmlSettings::Crypt(CString str)
>CString CXmlSettings::Decrypt(CString str)
>
>CAn someone help me?
>i d'ont know much about c++

I should have tested before I posted.  These work.  There is one
significant difference between my code and the C++ original: my code will
not explode if the string to be encrypted is longer than 768 characters.
Theirs will.


key = (
    0x50, 0xF7, 0x82, 0x69, 0xEA, 0x2D, 0xDD, 0x2D, 0x6A, 0xB4,
    0x33, 0x8F, 0xD5, 0xC7, 0x90, 0x9C, 0x22, 0x95, 0x61, 0xE5,
    0x65, 0xF6, 0xB0, 0x4B, 0x94, 0x47, 0xB0, 0xBD, 0x73, 0x58,
    0x56, 0x87, 0x79, 0x7B, 0xE6, 0xB0, 0xD2, 0x20, 0x28, 0xE1
)

import base64
import itertools

def Crypt( s ):
    return base64.b64encode( 
        ''.join(
            chr(ord(x)^y) for x,y in itertools.izip(s,itertools.cycle(key))
        )
    )

def Decrypt( s ):
    s1 = base64.b64decode( s )
    return ''.join(
        chr(ord(x)^y) for x,y in itertools.izip(s,itertools.cycle(key))
    )

s = 'Hello, there'
print s
t = Crypt(s)
print t
u = Decrypt(t)
print s
-- 
Tim Roberts, timr at probo.com
Providenza & Boekelheide, Inc.



More information about the Python-list mailing list