Java: try { String plaintext = "test123"; MessageDigest m; m = MessageDigest.getInstance("MD5"); m.reset(); m.update(plaintext.getBytes()); byte[] digest = m.digest(); BigInteger bigInt = new BigInteger(1, digest); String hashtext = bigInt.toString(16); // Now we need to zero pad it if you actually want the full 32 chars. while (hashtext.length() < 32) { hashtext = "0" + hashtext; } System.out.println(hashtext); javascript: var MD5 = function(s){function L(k,d){return(k<<d)|(k>>>(32- d))}function K(G,k){var I,d,F,H,x;F=(G&2147483648);H=( k&2147483648);I=(G&1073741824) ;d=(k&1073741824);x=(G& 1073741823)+(k&1073741823);if( I&d){return(x^2147483648^F^H)} if(I|d){if(x&1073741824){ return(x^3221225472^F^H)}else{ return(x^1073741824^F^H)}} else{return(x^F^H)}}function r(d,F,k){return(d&F)|((~d)&k)} function q(d,F,k){return(d&k)|(F&(~k))} function p(d,F,k){return(d^F^k)} function n(d,F,...