diff --git a/build/md5.min.js b/build/md5.min.js index 84b4ba1..a6311ea 100644 --- a/build/md5.min.js +++ b/build/md5.min.js @@ -1,11 +1,10 @@ -(function(p,x){"undefined"!=typeof module&&(p=global);var w="0123456789abcdef".split(""),e=[];if(!p.JS_MD5_TEST&&"undefined"!=typeof ArrayBuffer)var l=new ArrayBuffer(64),m=new Uint8Array(l),e=new Uint32Array(l);var l=function(n,p){var q=1732584193,r=4023233417,l=2562383102,t=271733878,a,b,d,c,f,g=0,k,h,v=!1;if(!p&&/[^\x00-\x7F]/.test(n)){v=!0;k=[];for(a=h=0;ab?k[h++]=b:(2048>b?k[h++]=192|b>>6:(55296>b||57344<=b?k[h++]=224|b>>12:(b=65536+((b&1023)<<10|n.charCodeAt(++a)& -1023),k[h++]=240|b>>18,k[h++]=128|b>>12&63),k[h++]=128|b>>6&63),k[h++]=128|b&63);h=k.length}else h=n.length;do{if(64a;++a)m[a]=k[g++];else for(a=0;16>a;++a)e[a]=k[g++]|k[g++]<<8|k[g++]<<16|k[g++]<<24;else if(m)for(a=0;64>a;++a)m[a]=n.charCodeAt(g++);else for(a=0;16>a;++a)e[a]=n.charCodeAt(g++)|n.charCodeAt(g++)<<8|n.charCodeAt(g++)<<16|n.charCodeAt(g++)<<24;else{e[0]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0;if(v)if(m)for(a=0;g>2]|=k[g]<<((a&3)<<3);else if(m)for(a=0;g>2]|=n.charCodeAt(g)<<((a&3)<<3);e[a>>2]|=128<<((a&3)<<3);e[14]=h<<3}64===g?(a=e[0]-680876937<<0,a=(a<<7|a>>>25)-271733879<<0,c=e[1]-117830708+(2004318071&a^-1732584194)<<0,c=(c<<12|c>>>20)+a<<0,d=e[2]-1126478375+((a^-271733879)&c^-271733879)<<0,d=(d<<17|d>>>15)+c<<0,b=e[3]-1316259209+((c^a)&d^a)<<0):(a=q,b=r,d=l,c=t,a+=(c^b&(d^c))+e[0]-680876936<<0,a=(a<< -7|a>>>25)+b<<0,c+=(d^a&(b^d))+e[1]-389564586<<0,c=(c<<12|c>>>20)+a<<0,d+=(b^c&(a^b))+e[2]+606105819<<0,d=(d<<17|d>>>15)+c<<0,b+=(a^d&(c^a))+e[3]-1044525330<<0);b=(b<<22|b>>>10)+d<<0;a+=(c^b&(d^c))+e[4]-176418897<<0;a=(a<<7|a>>>25)+b<<0;c+=(d^a&(b^d))+e[5]+1200080426<<0;c=(c<<12|c>>>20)+a<<0;d+=(b^c&(a^b))+e[6]-1473231341<<0;d=(d<<17|d>>>15)+c<<0;b+=(a^d&(c^a))+e[7]-45705983<<0;b=(b<<22|b>>>10)+d<<0;a+=(c^b&(d^c))+e[8]+1770035416<<0;a=(a<<7|a>>>25)+b<<0;c+=(d^a&(b^d))+e[9]-1958414417<<0;c=(c<<12|c>>> -20)+a<<0;d+=(b^c&(a^b))+e[10]-42063<<0;d=(d<<17|d>>>15)+c<<0;b+=(a^d&(c^a))+e[11]-1990404162<<0;b=(b<<22|b>>>10)+d<<0;a+=(c^b&(d^c))+e[12]+1804603682<<0;a=(a<<7|a>>>25)+b<<0;c+=(d^a&(b^d))+e[13]-40341101<<0;c=(c<<12|c>>>20)+a<<0;d+=(b^c&(a^b))+e[14]-1502002290<<0;d=(d<<17|d>>>15)+c<<0;b+=(a^d&(c^a))+e[15]+1236535329<<0;b=(b<<22|b>>>10)+d<<0;a+=(d^c&(b^d))+e[1]-165796510<<0;a=(a<<5|a>>>27)+b<<0;c+=(b^d&(a^b))+e[6]-1069501632<<0;c=(c<<9|c>>>23)+a<<0;d+=(a^b&(c^a))+e[11]+643717713<<0;d=(d<<14|d>>>18)+ -c<<0;b+=(c^a&(d^c))+e[0]-373897302<<0;b=(b<<20|b>>>12)+d<<0;a+=(d^c&(b^d))+e[5]-701558691<<0;a=(a<<5|a>>>27)+b<<0;c+=(b^d&(a^b))+e[10]+38016083<<0;c=(c<<9|c>>>23)+a<<0;d+=(a^b&(c^a))+e[15]-660478335<<0;d=(d<<14|d>>>18)+c<<0;b+=(c^a&(d^c))+e[4]-405537848<<0;b=(b<<20|b>>>12)+d<<0;a+=(d^c&(b^d))+e[9]+568446438<<0;a=(a<<5|a>>>27)+b<<0;c+=(b^d&(a^b))+e[14]-1019803690<<0;c=(c<<9|c>>>23)+a<<0;d+=(a^b&(c^a))+e[3]-187363961<<0;d=(d<<14|d>>>18)+c<<0;b+=(c^a&(d^c))+e[8]+1163531501<<0;b=(b<<20|b>>>12)+d<<0;a+= -(d^c&(b^d))+e[13]-1444681467<<0;a=(a<<5|a>>>27)+b<<0;c+=(b^d&(a^b))+e[2]-51403784<<0;c=(c<<9|c>>>23)+a<<0;d+=(a^b&(c^a))+e[7]+1735328473<<0;d=(d<<14|d>>>18)+c<<0;b+=(c^a&(d^c))+e[12]-1926607734<<0;b=(b<<20|b>>>12)+d<<0;f=b^d;a+=(f^c)+e[5]-378558<<0;a=(a<<4|a>>>28)+b<<0;f=b^d;c+=(f^a)+e[8]-2022574463<<0;c=(c<<11|c>>>21)+a<<0;f=c^a;d+=(f^b)+e[11]+1839030562<<0;d=(d<<16|d>>>16)+c<<0;f=c^a;b+=(f^d)+e[14]-35309556<<0;b=(b<<23|b>>>9)+d<<0;f=b^d;a+=(f^c)+e[1]-1530992060<<0;a=(a<<4|a>>>28)+b<<0;f=b^d;c+= -(f^a)+e[4]+1272893353<<0;c=(c<<11|c>>>21)+a<<0;f=c^a;d+=(f^b)+e[7]-155497632<<0;d=(d<<16|d>>>16)+c<<0;f=c^a;b+=(f^d)+e[10]-1094730640<<0;b=(b<<23|b>>>9)+d<<0;f=b^d;a+=(f^c)+e[13]+681279174<<0;a=(a<<4|a>>>28)+b<<0;f=b^d;c+=(f^a)+e[0]-358537222<<0;c=(c<<11|c>>>21)+a<<0;f=c^a;d+=(f^b)+e[3]-722521979<<0;d=(d<<16|d>>>16)+c<<0;f=c^a;b+=(f^d)+e[6]+76029189<<0;b=(b<<23|b>>>9)+d<<0;f=b^d;a+=(f^c)+e[9]-640364487<<0;a=(a<<4|a>>>28)+b<<0;f=b^d;c+=(f^a)+e[12]-421815835<<0;c=(c<<11|c>>>21)+a<<0;f=c^a;d+=(f^b)+ -e[15]+530742520<<0;d=(d<<16|d>>>16)+c<<0;f=c^a;b+=(f^d)+e[2]-995338651<<0;b=(b<<23|b>>>9)+d<<0;a+=(d^(b|~c))+e[0]-198630844<<0;a=(a<<6|a>>>26)+b<<0;c+=(b^(a|~d))+e[7]+1126891415<<0;c=(c<<10|c>>>22)+a<<0;d+=(a^(c|~b))+e[14]-1416354905<<0;d=(d<<15|d>>>17)+c<<0;b+=(c^(d|~a))+e[5]-57434055<<0;b=(b<<21|b>>>11)+d<<0;a+=(d^(b|~c))+e[12]+1700485571<<0;a=(a<<6|a>>>26)+b<<0;c+=(b^(a|~d))+e[3]-1894986606<<0;c=(c<<10|c>>>22)+a<<0;d+=(a^(c|~b))+e[10]-1051523<<0;d=(d<<15|d>>>17)+c<<0;b+=(c^(d|~a))+e[1]-2054922799<< -0;b=(b<<21|b>>>11)+d<<0;a+=(d^(b|~c))+e[8]+1873313359<<0;a=(a<<6|a>>>26)+b<<0;c+=(b^(a|~d))+e[15]-30611744<<0;c=(c<<10|c>>>22)+a<<0;d+=(a^(c|~b))+e[6]-1560198380<<0;d=(d<<15|d>>>17)+c<<0;b+=(c^(d|~a))+e[13]+1309151649<<0;b=(b<<21|b>>>11)+d<<0;a+=(d^(b|~c))+e[4]-145523070<<0;a=(a<<6|a>>>26)+b<<0;c+=(b^(a|~d))+e[11]-1120210379<<0;c=(c<<10|c>>>22)+a<<0;d+=(a^(c|~b))+e[2]+718787259<<0;d=(d<<15|d>>>17)+c<<0;b+=(c^(d|~a))+e[9]-343485551<<0;b=(b<<21|b>>>11)+d<<0;q=q+a<<0;r=r+b<<0;l=l+d<<0;t=t+c<<0}while(g< -h);return u(q)+u(r)+u(l)+u(t)},u=function(e){for(var l="",m=0;4>m;m++)var p=m<<3,l=l+(w[e>>p+4&15]+w[e>>p&15]);return l};p.JS_MD5_TEST||"undefined"==typeof module?p&&(p.md5=l):module.exports=l})(this); +(function(m,x){var q="undefined"!=typeof module;q&&(m=global);var w="0123456789abcdef".split(""),e=[],r;if(!m.JS_MD5_TEST&&"undefined"!=typeof ArrayBuffer){var h=new ArrayBuffer(64);r=new Uint8Array(h);e=new Uint32Array(h)}var h=function(p,m){var n=1732584193,t=4023233417,h=2562383102,u=271733878,c,a,b,d,f,k=0,l,g,q=!1;if(!m&&/[^\x00-\x7F]/.test(p)){q=!0;l=[];for(a=g=0;ab?l[g++]=b:(2048>b?l[g++]=192|b>>6:(55296>b||57344<=b?l[g++]=224|b>>12:(b=65536+((b&1023)<<10| +p.charCodeAt(++a)&1023),l[g++]=240|b>>18,l[g++]=128|b>>12&63),l[g++]=128|b>>6&63),l[g++]=128|b&63);g=l.length}else g=p.length;do{e[0]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0;if(q)if(r)for(a=0;ka;++k,++a)r[a]=l[k];else for(a=0;ka;++k,++a)e[a>>2]|=l[k]<<((a&3)<<3);else if(r)for(a=0;ka;++k,++a)r[a]=p.charCodeAt(k);else for(a=0;ka;++k,++a)e[a>>2]|=p.charCodeAt(k)<<((a&3)<<3);k==g&&(e[a>>2]|=128<<((a&3)<<3),e[14]=g<<3);c===x?(c=e[0]- +680876937,c=(c<<7|c>>>25)-271733879<<0,d=e[1]-117830708+(2004318071&c^-1732584194),d=(d<<12|d>>>20)+c<<0,b=e[2]-1126478375+((c^-271733879)&d^-271733879),b=(b<<17|b>>>15)+d<<0,a=e[3]-1316259209+((d^c)&b^c)):(c=n,a=t,b=h,d=u,c+=(d^a&(b^d))+e[0]-680876936,c=(c<<7|c>>>25)+a<<0,d+=(b^c&(a^b))+e[1]-389564586,d=(d<<12|d>>>20)+c<<0,b+=(a^d&(c^a))+e[2]+606105819,b=(b<<17|b>>>15)+d<<0,a+=(c^b&(d^c))+e[3]-1044525330);a=(a<<22|a>>>10)+b<<0;c+=(d^a&(b^d))+e[4]-176418897;c=(c<<7|c>>>25)+a<<0;d+=(b^c&(a^b))+e[5]+ +1200080426;d=(d<<12|d>>>20)+c<<0;b+=(a^d&(c^a))+e[6]-1473231341;b=(b<<17|b>>>15)+d<<0;a+=(c^b&(d^c))+e[7]-45705983;a=(a<<22|a>>>10)+b<<0;c+=(d^a&(b^d))+e[8]+1770035416;c=(c<<7|c>>>25)+a<<0;d+=(b^c&(a^b))+e[9]-1958414417;d=(d<<12|d>>>20)+c<<0;b+=(a^d&(c^a))+e[10]-42063;b=(b<<17|b>>>15)+d<<0;a+=(c^b&(d^c))+e[11]-1990404162;a=(a<<22|a>>>10)+b<<0;c+=(d^a&(b^d))+e[12]+1804603682;c=(c<<7|c>>>25)+a<<0;d+=(b^c&(a^b))+e[13]-40341101;d=(d<<12|d>>>20)+c<<0;b+=(a^d&(c^a))+e[14]-1502002290;b=(b<<17|b>>>15)+d<< +0;a+=(c^b&(d^c))+e[15]+1236535329;a=(a<<22|a>>>10)+b<<0;c+=(b^d&(a^b))+e[1]-165796510;c=(c<<5|c>>>27)+a<<0;d+=(a^b&(c^a))+e[6]-1069501632;d=(d<<9|d>>>23)+c<<0;b+=(c^a&(d^c))+e[11]+643717713;b=(b<<14|b>>>18)+d<<0;a+=(d^c&(b^d))+e[0]-373897302;a=(a<<20|a>>>12)+b<<0;c+=(b^d&(a^b))+e[5]-701558691;c=(c<<5|c>>>27)+a<<0;d+=(a^b&(c^a))+e[10]+38016083;d=(d<<9|d>>>23)+c<<0;b+=(c^a&(d^c))+e[15]-660478335;b=(b<<14|b>>>18)+d<<0;a+=(d^c&(b^d))+e[4]-405537848;a=(a<<20|a>>>12)+b<<0;c+=(b^d&(a^b))+e[9]+568446438; +c=(c<<5|c>>>27)+a<<0;d+=(a^b&(c^a))+e[14]-1019803690;d=(d<<9|d>>>23)+c<<0;b+=(c^a&(d^c))+e[3]-187363961;b=(b<<14|b>>>18)+d<<0;a+=(d^c&(b^d))+e[8]+1163531501;a=(a<<20|a>>>12)+b<<0;c+=(b^d&(a^b))+e[13]-1444681467;c=(c<<5|c>>>27)+a<<0;d+=(a^b&(c^a))+e[2]-51403784;d=(d<<9|d>>>23)+c<<0;b+=(c^a&(d^c))+e[7]+1735328473;b=(b<<14|b>>>18)+d<<0;a+=(d^c&(b^d))+e[12]-1926607734;a=(a<<20|a>>>12)+b<<0;f=a^b;c+=(f^d)+e[5]-378558;c=(c<<4|c>>>28)+a<<0;f=a^b;d+=(f^c)+e[8]-2022574463;d=(d<<11|d>>>21)+c<<0;f=d^c;b+=(f^ +a)+e[11]+1839030562;b=(b<<16|b>>>16)+d<<0;f=d^c;a+=(f^b)+e[14]-35309556;a=(a<<23|a>>>9)+b<<0;f=a^b;c+=(f^d)+e[1]-1530992060;c=(c<<4|c>>>28)+a<<0;f=a^b;d+=(f^c)+e[4]+1272893353;d=(d<<11|d>>>21)+c<<0;f=d^c;b+=(f^a)+e[7]-155497632;b=(b<<16|b>>>16)+d<<0;f=d^c;a+=(f^b)+e[10]-1094730640;a=(a<<23|a>>>9)+b<<0;f=a^b;c+=(f^d)+e[13]+681279174;c=(c<<4|c>>>28)+a<<0;f=a^b;d+=(f^c)+e[0]-358537222;d=(d<<11|d>>>21)+c<<0;f=d^c;b+=(f^a)+e[3]-722521979;b=(b<<16|b>>>16)+d<<0;f=d^c;a+=(f^b)+e[6]+76029189;a=(a<<23|a>>> +9)+b<<0;f=a^b;c+=(f^d)+e[9]-640364487;c=(c<<4|c>>>28)+a<<0;f=a^b;d+=(f^c)+e[12]-421815835;d=(d<<11|d>>>21)+c<<0;f=d^c;b+=(f^a)+e[15]+530742520;b=(b<<16|b>>>16)+d<<0;f=d^c;a+=(f^b)+e[2]-995338651;a=(a<<23|a>>>9)+b<<0;c+=(b^(a|~d))+e[0]-198630844;c=(c<<6|c>>>26)+a<<0;d+=(a^(c|~b))+e[7]+1126891415;d=(d<<10|d>>>22)+c<<0;b+=(c^(d|~a))+e[14]-1416354905;b=(b<<15|b>>>17)+d<<0;a+=(d^(b|~c))+e[5]-57434055;a=(a<<21|a>>>11)+b<<0;c+=(b^(a|~d))+e[12]+1700485571;c=(c<<6|c>>>26)+a<<0;d+=(a^(c|~b))+e[3]-1894986606; +d=(d<<10|d>>>22)+c<<0;b+=(c^(d|~a))+e[10]-1051523;b=(b<<15|b>>>17)+d<<0;a+=(d^(b|~c))+e[1]-2054922799;a=(a<<21|a>>>11)+b<<0;c+=(b^(a|~d))+e[8]+1873313359;c=(c<<6|c>>>26)+a<<0;d+=(a^(c|~b))+e[15]-30611744;d=(d<<10|d>>>22)+c<<0;b+=(c^(d|~a))+e[6]-1560198380;b=(b<<15|b>>>17)+d<<0;a+=(d^(b|~c))+e[13]+1309151649;a=(a<<21|a>>>11)+b<<0;c+=(b^(a|~d))+e[4]-145523070;c=(c<<6|c>>>26)+a<<0;d+=(a^(c|~b))+e[11]-1120210379;d=(d<<10|d>>>22)+c<<0;b+=(c^(d|~a))+e[2]+718787259;b=(b<<15|b>>>17)+d<<0;a+=(d^(b|~c))+e[9]- +343485551;a=(a<<21|a>>>11)+b<<0;n=n+c<<0;t=t+a<<0;h=h+b<<0;u=u+d<<0}while(kn;n++)var m=n<<3,h=h+(w[e>>m+4&15]+w[e>>m&15]);return h};!m.JS_MD5_TEST&&q?module.exports=h:m&&(m.md5=h)})(this); diff --git a/src/md5.js b/src/md5.js index e74b3a5..7bcfa42 100644 --- a/src/md5.js +++ b/src/md5.js @@ -10,16 +10,17 @@ ;(function(root, undefined) { 'use strict'; - if(typeof(module) != 'undefined') { + var nodejs = typeof(module) != 'undefined'; + if(nodejs) { root = global; } var HEX_CHARS = '0123456789abcdef'.split(''); - var blocks = []; + var blocks = [], buffer8; if(!root.JS_MD5_TEST && typeof(ArrayBuffer) != 'undefined') { var buffer = new ArrayBuffer(64); - var buffer8 = new Uint8Array(buffer); + buffer8 = new Uint8Array(buffer); blocks = new Uint32Array(buffer); } @@ -34,223 +35,195 @@ length = message.length; } do { - if(length - index > 64) { - if(utf8) { - if(buffer8) { - for(i = 0;i < 64;++i) { - buffer8[i] = bytes[index++]; - } - } else { - for(i = 0;i < 16;++i) { - blocks[i] = bytes[index++] | - bytes[index++] << 8 | - bytes[index++] << 16 | - bytes[index++] << 24; - } + blocks[0] = blocks[1] = blocks[2] = blocks[3] = + blocks[4] = blocks[5] = blocks[6] = blocks[7] = + blocks[8] = blocks[9] = blocks[10] = blocks[11] = + blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0; + if(utf8) { + if(buffer8) { + for(i = 0;index < length && i < 64;++index, ++i) { + buffer8[i] = bytes[index]; } } else { - if(buffer8) { - for(i = 0;i < 64;++i) { - buffer8[i] = message.charCodeAt(index++); - } - } else { - for(i = 0;i < 16;++i) { - blocks[i] = message.charCodeAt(index++) | - message.charCodeAt(index++) << 8 | - message.charCodeAt(index++) << 16 | - message.charCodeAt(index++) << 24; - } + for(i = 0;index < length && i < 64;++index, ++i) { + blocks[i >> 2] |= bytes[index] <<((i & 3) << 3); } } } else { - blocks[0] = blocks[1] = blocks[2] = blocks[3] = - blocks[4] = blocks[5] = blocks[6] = blocks[7] = - blocks[8] = blocks[9] = blocks[10] = blocks[11] = - blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0; - if(utf8) { - if(buffer8) { - for(i = 0;index < length;++index, ++i) { - buffer8[i] = bytes[index]; - } - } else { - for(i = 0;index < length;++index, ++i) { - blocks[i >> 2] |= bytes[index] <<((i & 3) << 3); - } + if(buffer8) { + for(i = 0;index < length && i < 64;++index, ++i) { + buffer8[i] = message.charCodeAt(index); } } else { - if(buffer8) { - for(i = 0;index < length;++index, ++i) { - buffer8[i] = message.charCodeAt(index); - } - } else { - for(i = 0;index < length;++index, ++i) { - blocks[i >> 2] |= message.charCodeAt(index) << ((i & 3) << 3); - } + for(i = 0;index < length && i < 64;++index, ++i) { + blocks[i >> 2] |= message.charCodeAt(index) << ((i & 3) << 3); } } + } + if(index == length) { blocks[i >> 2] |= 0x80 << ((i & 3) << 3); blocks[14] = length << 3; } - if(index === 64) { - a = blocks[0] - 680876937 << 0; + if(a === undefined) { + a = blocks[0] - 680876937; a = (a << 7 | a >>> 25) - 271733879 << 0; - d = blocks[1] - 117830708 + ((2004318071 & a) ^ -1732584194) << 0; + d = blocks[1] - 117830708 + ((2004318071 & a) ^ -1732584194); d = (d << 12 | d >>> 20) + a << 0; - c = blocks[2] - 1126478375 + (((a ^ -271733879) & d) ^ -271733879) << 0; + c = blocks[2] - 1126478375 + (((a ^ -271733879) & d) ^ -271733879); c = (c << 17 | c >>> 15) + d << 0; - b = blocks[3] - 1316259209 + (((d ^ a) & c) ^ a) << 0; + b = blocks[3] - 1316259209 + (((d ^ a) & c) ^ a); b = (b << 22 | b >>> 10) + c << 0; } else { a = h0; b = h1; c = h2; d = h3; - a += (d ^ (b & (c ^ d))) + blocks[0] - 680876936 << 0; + a += (d ^ (b & (c ^ d))) + blocks[0] - 680876936; a = (a << 7 | a >>> 25) + b << 0; - d += (c ^ (a & (b ^ c))) + blocks[1] - 389564586 << 0; + d += (c ^ (a & (b ^ c))) + blocks[1] - 389564586; d = (d << 12 | d >>> 20) + a << 0; - c += (b ^ (d & (a ^ b))) + blocks[2] + 606105819 << 0; + c += (b ^ (d & (a ^ b))) + blocks[2] + 606105819; c = (c << 17 | c >>> 15) + d << 0; - b += (a ^ (c & (d ^ a))) + blocks[3] - 1044525330 << 0; + b += (a ^ (c & (d ^ a))) + blocks[3] - 1044525330; b = (b << 22 | b >>> 10) + c << 0; } - a += (d ^ (b & (c ^ d))) + blocks[4] - 176418897 << 0; + a += (d ^ (b & (c ^ d))) + blocks[4] - 176418897; a = (a << 7 | a >>> 25) + b << 0; - d += (c ^ (a & (b ^ c))) + blocks[5] + 1200080426 << 0; + d += (c ^ (a & (b ^ c))) + blocks[5] + 1200080426; d = (d << 12 | d >>> 20) + a << 0; - c += (b ^ (d & (a ^ b))) + blocks[6] - 1473231341 << 0; + c += (b ^ (d & (a ^ b))) + blocks[6] - 1473231341; c = (c << 17 | c >>> 15) + d << 0; - b += (a ^ (c & (d ^ a))) + blocks[7] - 45705983 << 0; + b += (a ^ (c & (d ^ a))) + blocks[7] - 45705983; b = (b << 22 | b >>> 10) + c << 0; - a += (d ^ (b & (c ^ d))) + blocks[8] + 1770035416 << 0; + a += (d ^ (b & (c ^ d))) + blocks[8] + 1770035416; a = (a << 7 | a >>> 25) + b << 0; - d += (c ^ (a & (b ^ c))) + blocks[9] - 1958414417 << 0; + d += (c ^ (a & (b ^ c))) + blocks[9] - 1958414417; d = (d << 12 | d >>> 20) + a << 0; - c += (b ^ (d & (a ^ b))) + blocks[10] - 42063 << 0; + c += (b ^ (d & (a ^ b))) + blocks[10] - 42063; c = (c << 17 | c >>> 15) + d << 0; - b += (a ^ (c & (d ^ a))) + blocks[11] - 1990404162 << 0; + b += (a ^ (c & (d ^ a))) + blocks[11] - 1990404162; b = (b << 22 | b >>> 10) + c << 0; - a += (d ^ (b & (c ^ d))) + blocks[12] + 1804603682 << 0; + a += (d ^ (b & (c ^ d))) + blocks[12] + 1804603682; a = (a << 7 | a >>> 25) + b << 0; - d += (c ^ (a & (b ^ c))) + blocks[13] - 40341101 << 0; + d += (c ^ (a & (b ^ c))) + blocks[13] - 40341101; d = (d << 12 | d >>> 20) + a << 0; - c += (b ^ (d & (a ^ b))) + blocks[14] - 1502002290 << 0; + c += (b ^ (d & (a ^ b))) + blocks[14] - 1502002290; c = (c << 17 | c >>> 15) + d << 0; - b += (a ^ (c & (d ^ a))) + blocks[15] + 1236535329 << 0; + b += (a ^ (c & (d ^ a))) + blocks[15] + 1236535329; b = (b << 22 | b >>> 10) + c << 0; - a += (c ^ (d & (b ^ c))) + blocks[1] - 165796510 << 0; + a += (c ^ (d & (b ^ c))) + blocks[1] - 165796510; a = (a << 5 | a >>> 27) + b << 0; - d += (b ^ (c & (a ^ b))) + blocks[6] - 1069501632 << 0; + d += (b ^ (c & (a ^ b))) + blocks[6] - 1069501632; d = (d << 9 | d >>> 23) + a << 0; - c += (a ^ (b & (d ^ a))) + blocks[11] + 643717713 << 0; + c += (a ^ (b & (d ^ a))) + blocks[11] + 643717713; c = (c << 14 | c >>> 18) + d << 0; - b += (d ^ (a & (c ^ d))) + blocks[0] - 373897302 << 0; + b += (d ^ (a & (c ^ d))) + blocks[0] - 373897302; b = (b << 20 | b >>> 12) + c << 0; - a += (c ^ (d & (b ^ c))) + blocks[5] - 701558691 << 0; + a += (c ^ (d & (b ^ c))) + blocks[5] - 701558691; a = (a << 5 | a >>> 27) + b << 0; - d += (b ^ (c & (a ^ b))) + blocks[10] + 38016083 << 0; + d += (b ^ (c & (a ^ b))) + blocks[10] + 38016083; d = (d << 9 | d >>> 23) + a << 0; - c += (a ^ (b & (d ^ a))) + blocks[15] - 660478335 << 0; + c += (a ^ (b & (d ^ a))) + blocks[15] - 660478335; c = (c << 14 | c >>> 18) + d << 0; - b += (d ^ (a & (c ^ d))) + blocks[4] - 405537848 << 0; + b += (d ^ (a & (c ^ d))) + blocks[4] - 405537848; b = (b << 20 | b >>> 12) + c << 0; - a += (c ^ (d & (b ^ c))) + blocks[9] + 568446438 << 0; + a += (c ^ (d & (b ^ c))) + blocks[9] + 568446438; a = (a << 5 | a >>> 27) + b << 0; - d += (b ^ (c & (a ^ b))) + blocks[14] - 1019803690 << 0; + d += (b ^ (c & (a ^ b))) + blocks[14] - 1019803690; d = (d << 9 | d >>> 23) + a << 0; - c += (a ^ (b & (d ^ a))) + blocks[3] - 187363961 << 0; + c += (a ^ (b & (d ^ a))) + blocks[3] - 187363961; c = (c << 14 | c >>> 18) + d << 0; - b += (d ^ (a & (c ^ d))) + blocks[8] + 1163531501 << 0; + b += (d ^ (a & (c ^ d))) + blocks[8] + 1163531501; b = (b << 20 | b >>> 12) + c << 0; - a += (c ^ (d & (b ^ c))) + blocks[13] - 1444681467 << 0; + a += (c ^ (d & (b ^ c))) + blocks[13] - 1444681467; a = (a << 5 | a >>> 27) + b << 0; - d += (b ^ (c & (a ^ b))) + blocks[2] - 51403784 << 0; + d += (b ^ (c & (a ^ b))) + blocks[2] - 51403784; d = (d << 9 | d >>> 23) + a << 0; - c += (a ^ (b & (d ^ a))) + blocks[7] + 1735328473 << 0; + c += (a ^ (b & (d ^ a))) + blocks[7] + 1735328473; c = (c << 14 | c >>> 18) + d << 0; - b += (d ^ (a & (c ^ d))) + blocks[12] - 1926607734 << 0; + b += (d ^ (a & (c ^ d))) + blocks[12] - 1926607734; b = (b << 20 | b >>> 12) + c << 0; bc = b ^ c; - a += (bc ^ d) + blocks[5] - 378558 << 0; + a += (bc ^ d) + blocks[5] - 378558; a = (a << 4 | a >>> 28) + b << 0; bc = b ^ c; - d += (bc ^ a) + blocks[8] - 2022574463 << 0; + d += (bc ^ a) + blocks[8] - 2022574463; d = (d << 11 | d >>> 21) + a << 0; da = d ^ a; - c += (da ^ b) + blocks[11] + 1839030562 << 0; + c += (da ^ b) + blocks[11] + 1839030562; c = (c << 16 | c >>> 16) + d << 0; da = d ^ a; - b += (da ^ c) + blocks[14] - 35309556 << 0; + b += (da ^ c) + blocks[14] - 35309556; b = (b << 23 | b >>> 9) + c << 0; bc = b ^ c; - a += (bc ^ d) + blocks[1] - 1530992060 << 0; + a += (bc ^ d) + blocks[1] - 1530992060; a = (a << 4 | a >>> 28) + b << 0; bc = b ^ c; - d += (bc ^ a) + blocks[4] + 1272893353 << 0; + d += (bc ^ a) + blocks[4] + 1272893353; d = (d << 11 | d >>> 21) + a << 0; da = d ^ a; - c += (da ^ b) + blocks[7] - 155497632 << 0; + c += (da ^ b) + blocks[7] - 155497632; c = (c << 16 | c >>> 16) + d << 0; da = d ^ a; - b += (da ^ c) + blocks[10] - 1094730640 << 0; + b += (da ^ c) + blocks[10] - 1094730640; b = (b << 23 | b >>> 9) + c << 0; bc = b ^ c; - a += (bc ^ d) + blocks[13] + 681279174 << 0; + a += (bc ^ d) + blocks[13] + 681279174; a = (a << 4 | a >>> 28) + b << 0; bc = b ^ c; - d += (bc ^ a) + blocks[0] - 358537222 << 0; + d += (bc ^ a) + blocks[0] - 358537222; d = (d << 11 | d >>> 21) + a << 0; da = d ^ a; - c += (da ^ b) + blocks[3] - 722521979 << 0; + c += (da ^ b) + blocks[3] - 722521979; c = (c << 16 | c >>> 16) + d << 0; da = d ^ a; - b += (da ^ c) + blocks[6] + 76029189 << 0; + b += (da ^ c) + blocks[6] + 76029189; b = (b << 23 | b >>> 9) + c << 0; bc = b ^ c; - a += (bc ^ d) + blocks[9] - 640364487 << 0; + a += (bc ^ d) + blocks[9] - 640364487; a = (a << 4 | a >>> 28) + b << 0; bc = b ^ c; - d += (bc ^ a) + blocks[12] - 421815835 << 0; + d += (bc ^ a) + blocks[12] - 421815835; d = (d << 11 | d >>> 21) + a << 0; da = d ^ a; - c += (da ^ b) + blocks[15] + 530742520 << 0; + c += (da ^ b) + blocks[15] + 530742520; c = (c << 16 | c >>> 16) + d << 0; da = d ^ a; - b += (da ^ c) + blocks[2] - 995338651 << 0; + b += (da ^ c) + blocks[2] - 995338651; b = (b << 23 | b >>> 9) + c << 0; - a += (c ^ (b | ~d)) + blocks[0] - 198630844 << 0; + a += (c ^ (b | ~d)) + blocks[0] - 198630844; a = (a << 6 | a >>> 26) + b << 0; - d += (b ^ (a | ~c)) + blocks[7] + 1126891415 << 0; + d += (b ^ (a | ~c)) + blocks[7] + 1126891415; d = (d << 10 | d >>> 22) + a << 0; - c += (a ^ (d | ~b)) + blocks[14] - 1416354905 << 0; + c += (a ^ (d | ~b)) + blocks[14] - 1416354905; c = (c << 15 | c >>> 17) + d << 0; - b += (d ^ (c | ~a)) + blocks[5] - 57434055 << 0; + b += (d ^ (c | ~a)) + blocks[5] - 57434055; b = (b << 21 | b >>> 11) + c << 0; - a += (c ^ (b | ~d)) + blocks[12] + 1700485571 << 0; + a += (c ^ (b | ~d)) + blocks[12] + 1700485571; a = (a << 6 | a >>> 26) + b << 0; - d += (b ^ (a | ~c)) + blocks[3] - 1894986606 << 0; + d += (b ^ (a | ~c)) + blocks[3] - 1894986606; d = (d << 10 | d >>> 22) + a << 0; - c += (a ^ (d | ~b)) + blocks[10] - 1051523 << 0; + c += (a ^ (d | ~b)) + blocks[10] - 1051523; c = (c << 15 | c >>> 17) + d << 0; - b += (d ^ (c | ~a)) + blocks[1] - 2054922799 << 0; + b += (d ^ (c | ~a)) + blocks[1] - 2054922799; b = (b << 21 | b >>> 11) + c << 0; - a += (c ^ (b | ~d)) + blocks[8] + 1873313359 << 0; + a += (c ^ (b | ~d)) + blocks[8] + 1873313359; a = (a << 6 | a >>> 26) + b << 0; - d += (b ^ (a | ~c)) + blocks[15] - 30611744 << 0; + d += (b ^ (a | ~c)) + blocks[15] - 30611744; d = (d << 10 | d >>> 22) + a << 0; - c += (a ^ (d | ~b)) + blocks[6] - 1560198380 << 0; + c += (a ^ (d | ~b)) + blocks[6] - 1560198380; c = (c << 15 | c >>> 17) + d << 0; - b += (d ^ (c | ~a)) + blocks[13] + 1309151649 << 0; + b += (d ^ (c | ~a)) + blocks[13] + 1309151649; b = (b << 21 | b >>> 11) + c << 0; - a += (c ^ (b | ~d)) + blocks[4] - 145523070 << 0; + a += (c ^ (b | ~d)) + blocks[4] - 145523070; a = (a << 6 | a >>> 26) + b << 0; - d += (b ^ (a | ~c)) + blocks[11] - 1120210379 << 0; + d += (b ^ (a | ~c)) + blocks[11] - 1120210379; d = (d << 10 | d >>> 22) + a << 0; - c += (a ^ (d | ~b)) + blocks[2] + 718787259 << 0; + c += (a ^ (d | ~b)) + blocks[2] + 718787259; c = (c << 15 | c >>> 17) + d << 0; - b += (d ^ (c | ~a)) + blocks[9] - 343485551 << 0; + b += (d ^ (c | ~a)) + blocks[9] - 343485551; b = (b << 21 | b >>> 11) + c << 0; h0 = h0 + a << 0; @@ -295,7 +268,7 @@ return bytes; }; - if(!root.JS_MD5_TEST && typeof(module) != 'undefined') { + if(!root.JS_MD5_TEST && nodejs) { module.exports = md5; } else if(root) { root.md5 = md5;