MD5 = function(data) { // convert number to (unsigned) 32 bit hex, zero filled string function to_zerofilled_hex(n) { var t1 = (n >>> 0).toString(16) return "00000000".substr(0, 8 - t1.length) + t1 } // convert array of chars to array of bytes function chars_to_bytes(ac) { var retval = [] for (var i = 0; i < ac.length; i++) { retval = retval.concat(str_to_bytes(ac[i])) } return retval } // convert a 64 bit unsigned number to array of bytes. Little endian function int64_to_bytes(n...