Test code:
<script language=javascript> * * A JavaScript implementation of the RSA Data Security, Inc. MD5 message * diges t algorithm, as defined in RFC 1321. * Copyright (C) Paul Johnston 1999-2000. * Updated by Greg Holt 2000-2001. * http://pajhome.org.uk/site/legal.html for details. * * var HEX_CHR = "0123456789abcdef"; function RHex (num) {str = ' "; for (j = 0; J <= 3; j +) Str + + hex_chr.charat ((num >> (J * 8 + 4)) & 0x0f) + hex_chr.charat ((Num >> ( J * 8)) & 0x0f); return str; function Str2blks_md5 (str) {nblk = (str.length + 8) >> 6) + 1; Blks = new Array (NBLK * 16); for (i = 0; i < nblk * i++) blks[i] = 0; for (i = 0; i < str.length i++) blks[i >> 2] |= str.charcodeat (i) << ((i% 4) * 8); Blks[i >> 2] |= 0x80 << ((i% 4) * 8); BLKS[NBLK * 16-2] = str.length * 8; return blks; function add (x, y) {var LSW = (x & 0xFFFF) + (Y & 0xFFFF); var MSW = (x >>) + (y >&Gt + (LSW >> 16); Return (MSW << 16) | (LSW & 0xFFFF); function Rol (num, cnt) {return (num << cnt) | (Num >>> (32-cnt)); function CMN (q, A, B, X, S, t) {return Add (add (A, Q), add (x, T), s), b); function ff (A, B, C, D, X, S, t) {return CMN (b & c) | ((~b) & D), A, B, X, S, T); function Gg (A, B, C, D, X, S, t) {return CMN (b & D) | (C & (~d)), A, B, X, S, T); function hh (A, B, C, D, X, S, t) {return CMN (b ^ C ^ D, a, B, X, S, T); Function II (A, B, C, D, X, S, t) {return CMN c ^ (b | (~d)), A, B, X, S, T); function MD5 (str) {x = Str2blks_md5 (str); var a = 1732584193; var b =-271733879; var c =-1732584194; var d = 271733878; for (i = 0; i < x.length i + =) {var Olda = A; var oldb = b; var oldc = c; var oldd = D; A = FF (A, B, C, D, x[i+ 0], 7,-680876936); D = FF (d, a, B, C, x[i+ 1], 12,-389564586); c = FF (c, D, a, B, x[i+ 2], 17, 606105819); b = ff (b, C,D, A, x[i+ 3], 22,-1044525330); A = FF (A, B, C, D, x[i+ 4], 7,-176418897); D = FF (d, a, B, C, x[i+ 5], 12, 1200080426); c = FF (c, D, a, B, x[i+ 6], 17,-1473231341); b = ff (b, C, D, A, x[i+ 7], 22,-45705983); A = FF (A, B, C, D, x[i+ 8], 7, 1770035416); D = FF (d, a, B, C, x[i+ 9], 12,-1958414417); c = FF (c, D, a, B, x[i+10], 17,-42063); b = ff (b, C, D, A, x[i+11], 22,-1990404162); A = FF (A, B, C, D, X[i+12], 7, 1804603682); D = FF (d, a, B, C, x[i+13], 12,-40341101); c = FF (c, D, a, B, x[i+14], 17,-1502002290); b = ff (b, C, D, A, x[i+15], 22, 1236535329); A = GG (A, B, C, D, x[i+ 1], 5,-165796510); D = GG (d, a, B, C, x[i+ 6], 9,-1069501632); c = GG (c, D, a, B, x[i+11], 14, 643717713); b = GG (b, C, D, A, x[i+ 0], 20,-373897302); A = GG (A, B, C, D, x[i+ 5], 5,-701558691); D = GG (d, a, B, C, x[i+10], 9, 38016083); c = GG (c, D, a, B, x[i+15], 14,-660478335); b = GG (b, C, D, A, x[i+ 4], 20,-405537848); A = GG (A, B, C, D, x[i+ 9], 5, 568446438); D = gG (d, a, B, C, x[i+14], 9,-1019803690); c = GG (c, D, a, B, x[i+ 3], 14,-187363961); b = GG (b, C, D, A, x[i+ 8], 20, 1163531501); A = GG (A, B, C, D, X[i+13], 5,-1444681467); D = GG (d, a, B, C, x[i+ 2], 9,-51403784); c = GG (c, D, a, B, x[i+ 7], 14, 1735328473); b = GG (b, C, D, A, x[i+12], 20,-1926607734); A = HH (A, B, C, D, x[i+ 5], 4,-378558); D = hh (d, a, B, C, x[i+ 8], 11,-2022574463); c = HH (c, D, a, B, x[i+11], 16, 1839030562); b = hh (b, C, D, A, x[i+14], 23,-35309556); A = HH (A, B, C, D, x[i+ 1], 4,-1530992060); D = hh (d, a, B, C, x[i+ 4], 11, 1272893353); c = HH (c, D, a, B, x[i+ 7], 16,-155497632); b = hh (b, C, D, A, x[i+10], 23,-1094730640); A = HH (A, B, C, D, X[i+13], 4, 681279174); D = hh (d, a, B, C, x[i+ 0], 11,-358537222); c = HH (c, D, a, B, x[i+ 3], 16,-722521979); b = hh (b, C, D, A, x[i+ 6], 23, 76029189); A = HH (A, B, C, D, x[i+ 9], 4,-640364487); D = hh (d, a, B, C, x[i+12], 11,-421815835); c = HH (c, D, a, B, x[i+15], 16, 530742520); b = hh (b, C, D, A, x[i+ 2], 23,-995338651); A = II (A, B, C, D, x[i+ 0], 6,-198630844); D = II (d, a, B, C, x[i+ 7], 10, 1126891415); c = II (C, D, a, B, x[i+14], 15,-1416354905); b = II (b, C, D, A, x[i+ 5], 21,-57434055); A = II (A, B, C, D, X[i+12], 6, 1700485571); D = II (d, a, B, C, x[i+ 3], 10,-1894986606); c = II (C, D, a, B, x[i+10], 15,-1051523); b = II (b, C, D, A, x[i+ 1], 21,-2054922799); A = II (A, B, C, D, x[i+ 8], 6, 1873313359); D = II (d, a, B, C, x[i+15], 10,-30611744); c = II (C, D, a, B, x[i+ 6], 15,-1560198380); b = II (b, C, D, A, x[i+13], 21, 1309151649); A = II (A, B, C, D, x[i+ 4], 6,-145523070); D = II (d, a, B, C, x[i+11], 10,-1120210379); c = II (C, D, a, B, x[i+ 2], 15, 718787259); b = II (b, C, D, A, x[i+ 9], 21,-343485551); A = Add (A, Olda); b = Add (b, oldb); c = Add (c, OLDC); D = Add (d, OLDD); Return RHex (a) + RHex (b) + RHex (c) + RHex (d); Alert (MD5 ("admin")); </script>
[Ctrl + A All SELECT Note: If the need to introduce external JS need to refresh to perform]