[pycrypto] string XOR
dmacinskas at geobridge.net
Fri Oct 28 06:57:55 CST 2011
I've been offline for a few days, so I apologize for the delay. I'm a new pycrypto user, and missed this - I appreciate the heads-up.
I've got a followup question too: I need to do bit shifts on long (8 or 16 byte) strings. I can't see any simple way to do this; the built-in Python bit shift functions only work on integers and don't seem to have multi-precision extensions. Any advice on how to do this?
From: pycrypto-bounces at lists.dlitz.net [mailto:pycrypto-bounces at lists.dlitz.net] On Behalf Of Dwayne C. Litzenberger
Sent: Saturday, October 22, 2011 4:24 PM
To: PyCrypto discussion list
Subject: Re: [pycrypto] string XOR
On Fri, Oct 21, 2011 at 03:09:36PM +0100, Richard Moore wrote:
>On Fri, Oct 21, 2011 at 2:55 PM, Dean Macinskas
><dmacinskas at geobridge.net> wrote:
>> ke = operator.xor(kbpkb,ve)
>> TypeError: unsupported operand type(s) for ^: 'str' and 'str'
>> Is there a way to do this in native Python (I'm using 2.7.2), or must I use
>> a library of some sort?
>Use ord() to convert each character to a number first, then chr() to
>convert the number back to a character.
Also, if you're using PyCrypto anyway, you can use its fast C
implementation of a byte-wise string XOR:
from Crypto.Util.strxor import strxor
Dwayne C. Litzenberger <dlitz at dlitz.net>
OpenPGP: 19E1 1FE8 B3CF F273 ED17 4A24 928C EC13 39C2 5CF7
pycrypto mailing list
pycrypto at lists.dlitz.net
More information about the pycrypto