I'm having a heck of a time trying to understand this. How does, for example MD5 or SHA1 hash a string and only return alphanumeric characters. I mean, if I'm not entirely off, they both, or atleast MD5, converts the string to binary and then appends whatever's missing to be able to chop it up in blocks of 512 chars. It then does a series of operations, one of them being to XOR one of the 32 words of each chunk. I mean, this cannot be pure luck to just get alphanumeric characters in the end, the XOR must produce something else?
Could someone explain to me, and or even provide a small example where someone XOR's a string in java or php?