How to XOR a byte output?

durgadevi1 srirajarajeswaridevikrupa at gmail.com
Wed Apr 13 09:51:02 EDT 2016


On Wednesday, April 13, 2016 at 9:29:45 PM UTC+8, Chris Angelico wrote:
> On Wed, Apr 13, 2016 at 11:18 PM, durgadevi1
> <srirajarajeswaridevikrupa at gmail.com> wrote:
> >
> > The output from the file is given below:
> >
> > b'$//W?\xc0\x829\xa2\xb9\x13\x8c\xd5{\'
> >
> >
> > I used the type() to identify the class and its a byte class.
> >
> > I saw many \x and thought it might be hex.
> >
> >
> > So, I used binascii.hexlify() and got the following output:
> > b'242f2f573fc08239a2b9138cd57b'
> >
> > Now, this output is being encrypted and I need to perform an XOR operation on it in order to retrieve a secret message.
> >
> > But, I'm not sure how to code the XOR operation. How do I code that?
> >
> 
> What you have is a series of bytes. They don't have any obvious
> meaning right there, so you're going to have to figure out what to XOR
> it with.
> 
> Let's just guess that you want to xor with the byte value 0xAA. We can
> do that fairly simply, using integer operations.
> 
> >>> data = b'$//W?\xc0\x829\xa2\xb9\x13\x8c\xd5{\\'
> >>> bytes(b ^ 0xAA for b in data)
> b'\x8e\x85\x85\xfd\x95j(\x93\x08\x13\xb9&\x7f\xd1\xf6'
> 
> Well, that doesn't look much more intelligible. We can try a few other
> byte values pretty easily:
> 
> >>> bytes(b ^ 0x17 for b in data)
> b'388@(\xd7\x95.\xb5\xae\x04\x9b\xc2lK'
> >>> bytes(b ^ 0x9D for b in data)
> b'\xb9\xb2\xb2\xca\xa2]\x1f\xa4?$\x8e\x11H\xe6\xc1'
> >>> bytes(b ^ 0xE2 for b in data)
> b'\xc6\xcd\xcd\xb5\xdd"`\xdb@[\xf1n7\x99\xbe'
> 
> but it still doesn't look very promising. You're going to need to know
> the key - the byte value, or sequence of byte values, to XOR with.
> 
> ChrisA

Ok thank you ChrisA. :) 

I would like to check with you whether using binascii.hexlify() to convert the series of bytes into alphabets and integers is correct.



More information about the Python-list mailing list