md5 implementation in JavaScript