http://www.rubydoc.info/stdlib/digest/1.9.3/Digest/MD5