The MD5 Message-Digest Algorithm implemented in Python
Made solely for the learning purposes, shared in good faith with everyone.
For real applications, use: https://docs.python.org/3/library/hashlib.html
Based on the pseudocode from Wikipedia: https://en.wikipedia.org/wiki/MD5#Pseudocode
Original specification: https://www.ietf.org/rfc/rfc1321.txt