/* March 2007 Expotv - Video player Copyright © 2007 by Andrei Potorac All rights reserved. */ function bitAND(a, b) { if (a<0 && b<0) { var lsb = (a & 0x1) & (b & 0x1); var msb31 = (a >>> 1) & (b >>> 1); return (msb31 << 1) | lsb; } else { return (a & b); } } // ********************************* // alex // 534b44a19bf18d20b71ecc4eb77c572f // ********************************* /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as defined in RFC 1321. * Copyright (C) Paul Johnston 1999 - 2000. * Updated by Greg Holt 2000 - 2001. * See http://pajhome.org.uk/site/legal.html for details. */ /* * Convert a 32-bit number to a hex string with ls-byte first */ var hex_chr = "0123456789abcdef"; function rhex(num) { str = ""; for (j=0; j<=3; j++) { str += hex_chr.charAt(bitAND((num >> (j*8+4)), 0x0F))+hex_chr.charAt(bitAND((num >> (j*8)), 0x0F)); } return str; } /* * Convert a string to a sequence of 16-word blocks, stored as an array. * Append padding bits and the length, as described in the MD5 standard. */ function str2blks_MD5(str) { nblk = ((str.length+8) >> 6)+1; blks = new Array(nblk*16); for (i=0; i> 2] |= str.charCodeAt(i) << ((i%4)*8); } blks[i >> 2] |= 0x80 << ((i%4)*8); blks[nblk*16-2] = str.length*8; return blks; } /* * Add integers, wrapping at 2^32. This uses 16-bit operations internally * to work around bugs in some JS interpreters. */ function addme(x, y) { var lsw = (bitAND(x, 0xFFFF))+(bitAND(y, 0xFFFF)); var msw = (x >> 16)+(y >> 16)+(lsw >> 16); return (msw << 16) | (bitAND(lsw, 0xFFFF)); } /* * Bitwise rotate a 32-bit number to the left */ function rol(num, cnt) { return (num << cnt) | (num >>> (32-cnt)); } /* * These functions implement the basic operation for each round of the * algorithm. */ function cmn(q, a, b, x, s, t) { return addme(rol(addme(addme(a, q), addme(x, t)), s), b); } function ff(a, b, c, d, x, s, t) { return cmn((bitAND(b, c)) | (bitAND(~b, d)), a, b, x, s, t); } function gg(a, b, c, d, x, s, t) { return cmn((bitAND(b, d)) | (bitAND(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); } /* * Take a string and return the hex representation of its MD5. */ String.prototype.MD5 = function() { var str = this; x = str2blks_MD5(str); a = 1732584193; b = -271733879; c = -1732584194; d = 271733878; for (i=0; i