Replicating PHP’s Adler32 hash in Python
If you’ve got to replicate a PHP
hash('adler32', $string) command in Python, you may expect to just do this:
from zlib import adler32 checksum = adler32(string)
Unfortunately the values are different, for two reasons. Firstly, Python returns the result in decimal, while PHP returns the result in hex. Secondly, Python returns a signed value on some platforms and an unsigned value on others, so even within the same Python code you might not always get the same result.
Therefore, to get the same value on all platforms, and match the value you get back from PHP, you’ll need to use this:
from zlib import adler32 str(hex(adler32(email['email']) & 0xffffffff))[2:]