/* *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. *Updated by Ash 2007. *See for details. */ function MDH(num){var c="0123456789abcdef";str="";for(j=0;j<=3;j++)str+=c.charAt((num>>(j*8+4))&0x0F)+c.charAt((num>>(j*8))&0x0F);return str}function MD(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}function MDA(x,y){var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);return (msw<<16)|(lsw&0xFFFF)}function rol(num,cnt){return (num<>>(32-cnt))}function cmn(q,a,b,x,s,t){return MDA(rol(MDA(MDA(a,q),MDA(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=MD(str+'');var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(i=0;i |