MD5 (Notes)
A pseudorandom number is a number produced by an algorithm that looks random, but is actually generated from a starting value called a seed. Pseudorandom means random-looking, but algorithm-generated.
MD5 takes 512 bits input and returns a 128 bit output
only operates on 32 bit chuncks