On Wed, 20 Jan 2010 19:27:34 +0100, Alf P. Steinbach wrote: > * Mark Dickinson: >> On Jan 20, 7:36 am, Steven D'Aprano <st...@remove-this- >> cybersource.com.au> wrote: >>> I have a byte string (Python 2.x string), e.g.: >>> >>> s = "g%$f yg\n1\05" >>> assert len(s) == 10 >>> >>> I wish to convert it to a long integer, treating it as base-256. >> >> By the way, are you willing to divulge what you're using this >> functionality for? When trying to hack out the API for int.to_bytes >> and int.from_bytes on the mailing list and bug tracker, some of the >> discussion about use-cases seemed a little too much like guesswork; I'd >> be curious to find out about real-life use-cases. > > One possibility is that Steven wants to apply bitlevel and/or arithmetic > operations for e.g. some custom cryptographic thing. The string that he > uses as example is not completely unlike a message digest.
Good guess! I'm writing a module that handles, I won't call it encryption, obfuscation using classical cryptographic algorithms. One of the functions needs a deterministic but unpredictable integer generated from a human-generated password or passphrase, so I'm using: hashlib.md5(key).digest() to get a string of bytes, then converting it to an int. int.from_bytes would be perfect for me, but in the meantime I'm using Paul Rubin's trick of int(s.encode("hex"), 16). Thanks to all who responded. -- Steven -- http://mail.python.org/mailman/listinfo/python-list