Working with bytes.

Scott David Daniels Scott.Daniels at Acm.Org
Sat Apr 3 12:15:13 EST 2004


Adam T. Gautier wrote:

> I have been unable to solve a problem.  I am working with MD5 signatures 
> trying to put these in a database.  The MD5 signatures are not generated 
> using the python md5 module but an external application that is 
> producing the valid 16 byte signature formats.  Anyway, these 16 byte 
> signatures are not nescarrally valid strings.  How do I manipulate the 
> bytes?  I need to concatenate the bytes with a SQL statement which is a 
> string.  This works fine for most of the md5 signatures but some blow up 
> with a TypeError.  Because there is a NULL byte or something else.  So I 
> guess my ultimate question is how do I get a prepared SQL statement to 
> accept a series of bytes?  How do I convert the bytes to a valid string 
> like:
> 
> 'x%L9d\340\316\262\363\037\311\345<\262\357\215'
> 
> that can be concatenated?
> 
> Thanks
> 
This should probably do:
     cursor.execute('SELECT author from stored where md5 = ?', md5)

But you might consider changing your approach to store hex strings:
     cursor.execute('SELECT author from stored where md5 = ?',
                    ''.join(['%02x' % byte for byte in md5]))
-- 
-Scott David Daniels
Scott.Daniels at Acm.Org



More information about the Python-list mailing list