* Improve performance.

pull/3/head
Chen Yi-Cyuan 11 years ago
parent dca3e8c59d
commit 96036975f7

@ -1,3 +1,7 @@
# v0.2.1 / 2015-01-13
* Improve performance.
# v0.2.0 / 2015-01-12 # v0.2.0 / 2015-01-12
* Remove ascii parameter. * Remove ascii parameter.

@ -1,6 +1,6 @@
{ {
"name": "js-md5", "name": "js-md5",
"version": "0.2.0", "version": "0.2.1",
"main": ["build/md5.min.js"], "main": ["build/md5.min.js"],
"ignore": [ "ignore": [
"samples", "samples",

21
build/md5.min.js vendored

@ -1,10 +1,11 @@
(function(g,w){var x="undefined"!=typeof module;x&&(g=global);var y=!g.JS_MD5_TEST&&"undefined"!=typeof ArrayBuffer,z="0123456789abcdef".split(""),e=[],k;if(y){var h=new ArrayBuffer(68);k=new Uint8Array(h);e=new Uint32Array(h)}var A=[128,32768,8388608,-2147483648],m=[0,8,16,24],h=function(p){var n,q,r,g,b,a,d,c,f,l=0,h=0,v=0,t=p.length;e[16]=0;do{e[0]=e[16];e[16]=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(y)for(a=h;l<t&&64>a;++l)b=p.charCodeAt(l),128>b?k[a++]= (function(k,x){var t="undefined"!=typeof module;t&&(k=global);var y=!k.JS_MD5_TEST&&"undefined"!=typeof ArrayBuffer,f="0123456789abcdef".split(""),z=[128,32768,8388608,-2147483648],u=[0,8,16,24],e=[],r,w;if(y){var p=new ArrayBuffer(68);r=new Uint8Array(p);e=new Uint32Array(p)}if(!k.JS_MD5_TEST&&t){var A=require("crypto");w=function(e){return A.createHash("md5").update(e,"utf8").digest("hex")}}p=function(k){var h,l,m,n,b,a,d,c,g,q=0,p=0,t=0,v=k.length;if(w&&22<v)return w(k);e[16]=0;do{e[0]=e[16];e[16]=
b:(2048>b?k[a++]=192|b>>6:(55296>b||57344<=b?k[a++]=224|b>>12:(b=65536+((b&1023)<<10|p.charCodeAt(++l)&1023),k[a++]=240|b>>18,k[a++]=128|b>>12&63),k[a++]=128|b>>6&63),k[a++]=128|b&63);else for(a=h;l<t&&64>a;++l)b=p.charCodeAt(l),128>b?e[a>>2]|=b<<m[a++&3]:(2048>b?e[a>>2]|=(192|b>>6)<<m[a++&3]:(55296>b||57344<=b?e[a>>2]|=(224|b>>12)<<m[a++&3]:(b=65536+((b&1023)<<10|p.charCodeAt(++l)&1023),e[a>>2]|=(240|b>>18)<<m[a++&3],e[a>>2]|=(128|b>>12&63)<<m[a++&3]),e[a>>2]|=(128|b>>6&63)<<m[a++&3]),e[a>>2]|=(128| 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(y)for(a=p;q<v&&64>a;++q)b=k.charCodeAt(q),128>b?r[a++]=b:(2048>b?r[a++]=192|b>>6:(55296>b||57344<=b?r[a++]=224|b>>12:(b=65536+((b&1023)<<10|k.charCodeAt(++q)&1023),r[a++]=240|b>>18,r[a++]=128|b>>12&63),r[a++]=128|b>>6&63),r[a++]=128|b&63);else for(a=p;q<v&&64>a;++q)b=k.charCodeAt(q),128>b?e[a>>2]|=b<<u[a++&3]:(2048>b?e[a>>2]|=(192|b>>6)<<u[a++&3]:(55296>b||57344<=b?e[a>>2]|=(224|b>>12)<<u[a++&3]:(b=65536+((b&1023)<<
b&63)<<m[a++&3]);v+=a-h;h=a-64;l==t&&(e[a>>2]|=A[a&3],e[14]=v<<3);n===w?(b=e[0]-680876937,b=(b<<7|b>>>25)-271733879<<0,c=e[1]-117830708+(2004318071&b^-1732584194),c=(c<<12|c>>>20)+b<<0,d=e[2]-1126478375+((b^-271733879)&c^-271733879),d=(d<<17|d>>>15)+c<<0,a=e[3]-1316259209+((c^b)&d^b)):(b=n,a=q,d=r,c=g,b+=(c^a&(d^c))+e[0]-680876936,b=(b<<7|b>>>25)+a<<0,c+=(d^b&(a^d))+e[1]-389564586,c=(c<<12|c>>>20)+b<<0,d+=(a^c&(b^a))+e[2]+606105819,d=(d<<17|d>>>15)+c<<0,a+=(b^d&(c^b))+e[3]-1044525330);a=(a<<22|a>>> 10|k.charCodeAt(++q)&1023),e[a>>2]|=(240|b>>18)<<u[a++&3],e[a>>2]|=(128|b>>12&63)<<u[a++&3]),e[a>>2]|=(128|b>>6&63)<<u[a++&3]),e[a>>2]|=(128|b&63)<<u[a++&3]);t+=a-p;p=a-64;q==v&&(e[a>>2]|=z[a&3],e[14]=t<<3);h===x?(b=e[0]-680876937,b=(b<<7|b>>>25)-271733879<<0,c=(-1732584194^b&2004318071)+e[1]-117830708,c=(c<<12|c>>>20)+b<<0,d=(-271733879^c&(b^-271733879))+e[2]-1126478375,d=(d<<17|d>>>15)+c<<0,a=(b^d&(c^b))+e[3]-1316259209):(b=h,a=l,d=m,c=n,b+=(c^a&(d^c))+e[0]-680876936,b=(b<<7|b>>>25)+a<<0,c+=(d^
10)+d<<0;b+=(c^a&(d^c))+e[4]-176418897;b=(b<<7|b>>>25)+a<<0;c+=(d^b&(a^d))+e[5]+1200080426;c=(c<<12|c>>>20)+b<<0;d+=(a^c&(b^a))+e[6]-1473231341;d=(d<<17|d>>>15)+c<<0;a+=(b^d&(c^b))+e[7]-45705983;a=(a<<22|a>>>10)+d<<0;b+=(c^a&(d^c))+e[8]+1770035416;b=(b<<7|b>>>25)+a<<0;c+=(d^b&(a^d))+e[9]-1958414417;c=(c<<12|c>>>20)+b<<0;d+=(a^c&(b^a))+e[10]-42063;d=(d<<17|d>>>15)+c<<0;a+=(b^d&(c^b))+e[11]-1990404162;a=(a<<22|a>>>10)+d<<0;b+=(c^a&(d^c))+e[12]+1804603682;b=(b<<7|b>>>25)+a<<0;c+=(d^b&(a^d))+e[13]-40341101; b&(a^d))+e[1]-389564586,c=(c<<12|c>>>20)+b<<0,d+=(a^c&(b^a))+e[2]+606105819,d=(d<<17|d>>>15)+c<<0,a+=(b^d&(c^b))+e[3]-1044525330);a=(a<<22|a>>>10)+d<<0;b+=(c^a&(d^c))+e[4]-176418897;b=(b<<7|b>>>25)+a<<0;c+=(d^b&(a^d))+e[5]+1200080426;c=(c<<12|c>>>20)+b<<0;d+=(a^c&(b^a))+e[6]-1473231341;d=(d<<17|d>>>15)+c<<0;a+=(b^d&(c^b))+e[7]-45705983;a=(a<<22|a>>>10)+d<<0;b+=(c^a&(d^c))+e[8]+1770035416;b=(b<<7|b>>>25)+a<<0;c+=(d^b&(a^d))+e[9]-1958414417;c=(c<<12|c>>>20)+b<<0;d+=(a^c&(b^a))+e[10]-42063;d=(d<<17|
c=(c<<12|c>>>20)+b<<0;d+=(a^c&(b^a))+e[14]-1502002290;d=(d<<17|d>>>15)+c<<0;a+=(b^d&(c^b))+e[15]+1236535329;a=(a<<22|a>>>10)+d<<0;b+=(d^c&(a^d))+e[1]-165796510;b=(b<<5|b>>>27)+a<<0;c+=(a^d&(b^a))+e[6]-1069501632;c=(c<<9|c>>>23)+b<<0;d+=(b^a&(c^b))+e[11]+643717713;d=(d<<14|d>>>18)+c<<0;a+=(c^b&(d^c))+e[0]-373897302;a=(a<<20|a>>>12)+d<<0;b+=(d^c&(a^d))+e[5]-701558691;b=(b<<5|b>>>27)+a<<0;c+=(a^d&(b^a))+e[10]+38016083;c=(c<<9|c>>>23)+b<<0;d+=(b^a&(c^b))+e[15]-660478335;d=(d<<14|d>>>18)+c<<0;a+=(c^b& d>>>15)+c<<0;a+=(b^d&(c^b))+e[11]-1990404162;a=(a<<22|a>>>10)+d<<0;b+=(c^a&(d^c))+e[12]+1804603682;b=(b<<7|b>>>25)+a<<0;c+=(d^b&(a^d))+e[13]-40341101;c=(c<<12|c>>>20)+b<<0;d+=(a^c&(b^a))+e[14]-1502002290;d=(d<<17|d>>>15)+c<<0;a+=(b^d&(c^b))+e[15]+1236535329;a=(a<<22|a>>>10)+d<<0;b+=(d^c&(a^d))+e[1]-165796510;b=(b<<5|b>>>27)+a<<0;c+=(a^d&(b^a))+e[6]-1069501632;c=(c<<9|c>>>23)+b<<0;d+=(b^a&(c^b))+e[11]+643717713;d=(d<<14|d>>>18)+c<<0;a+=(c^b&(d^c))+e[0]-373897302;a=(a<<20|a>>>12)+d<<0;b+=(d^c&(a^d))+
(d^c))+e[4]-405537848;a=(a<<20|a>>>12)+d<<0;b+=(d^c&(a^d))+e[9]+568446438;b=(b<<5|b>>>27)+a<<0;c+=(a^d&(b^a))+e[14]-1019803690;c=(c<<9|c>>>23)+b<<0;d+=(b^a&(c^b))+e[3]-187363961;d=(d<<14|d>>>18)+c<<0;a+=(c^b&(d^c))+e[8]+1163531501;a=(a<<20|a>>>12)+d<<0;b+=(d^c&(a^d))+e[13]-1444681467;b=(b<<5|b>>>27)+a<<0;c+=(a^d&(b^a))+e[2]-51403784;c=(c<<9|c>>>23)+b<<0;d+=(b^a&(c^b))+e[7]+1735328473;d=(d<<14|d>>>18)+c<<0;a+=(c^b&(d^c))+e[12]-1926607734;a=(a<<20|a>>>12)+d<<0;f=a^d;b+=(f^c)+e[5]-378558;b=(b<<4|b>>> e[5]-701558691;b=(b<<5|b>>>27)+a<<0;c+=(a^d&(b^a))+e[10]+38016083;c=(c<<9|c>>>23)+b<<0;d+=(b^a&(c^b))+e[15]-660478335;d=(d<<14|d>>>18)+c<<0;a+=(c^b&(d^c))+e[4]-405537848;a=(a<<20|a>>>12)+d<<0;b+=(d^c&(a^d))+e[9]+568446438;b=(b<<5|b>>>27)+a<<0;c+=(a^d&(b^a))+e[14]-1019803690;c=(c<<9|c>>>23)+b<<0;d+=(b^a&(c^b))+e[3]-187363961;d=(d<<14|d>>>18)+c<<0;a+=(c^b&(d^c))+e[8]+1163531501;a=(a<<20|a>>>12)+d<<0;b+=(d^c&(a^d))+e[13]-1444681467;b=(b<<5|b>>>27)+a<<0;c+=(a^d&(b^a))+e[2]-51403784;c=(c<<9|c>>>23)+b<<
28)+a<<0;f=a^d;c+=(f^b)+e[8]-2022574463;c=(c<<11|c>>>21)+b<<0;f=c^b;d+=(f^a)+e[11]+1839030562;d=(d<<16|d>>>16)+c<<0;f=c^b;a+=(f^d)+e[14]-35309556;a=(a<<23|a>>>9)+d<<0;f=a^d;b+=(f^c)+e[1]-1530992060;b=(b<<4|b>>>28)+a<<0;f=a^d;c+=(f^b)+e[4]+1272893353;c=(c<<11|c>>>21)+b<<0;f=c^b;d+=(f^a)+e[7]-155497632;d=(d<<16|d>>>16)+c<<0;f=c^b;a+=(f^d)+e[10]-1094730640;a=(a<<23|a>>>9)+d<<0;f=a^d;b+=(f^c)+e[13]+681279174;b=(b<<4|b>>>28)+a<<0;f=a^d;c+=(f^b)+e[0]-358537222;c=(c<<11|c>>>21)+b<<0;f=c^b;d+=(f^a)+e[3]- 0;d+=(b^a&(c^b))+e[7]+1735328473;d=(d<<14|d>>>18)+c<<0;a+=(c^b&(d^c))+e[12]-1926607734;a=(a<<20|a>>>12)+d<<0;g=a^d;b+=(g^c)+e[5]-378558;b=(b<<4|b>>>28)+a<<0;c+=(g^b)+e[8]-2022574463;c=(c<<11|c>>>21)+b<<0;g=c^b;d+=(g^a)+e[11]+1839030562;d=(d<<16|d>>>16)+c<<0;a+=(g^d)+e[14]-35309556;a=(a<<23|a>>>9)+d<<0;g=a^d;b+=(g^c)+e[1]-1530992060;b=(b<<4|b>>>28)+a<<0;c+=(g^b)+e[4]+1272893353;c=(c<<11|c>>>21)+b<<0;g=c^b;d+=(g^a)+e[7]-155497632;d=(d<<16|d>>>16)+c<<0;a+=(g^d)+e[10]-1094730640;a=(a<<23|a>>>9)+d<<0;
722521979;d=(d<<16|d>>>16)+c<<0;f=c^b;a+=(f^d)+e[6]+76029189;a=(a<<23|a>>>9)+d<<0;f=a^d;b+=(f^c)+e[9]-640364487;b=(b<<4|b>>>28)+a<<0;f=a^d;c+=(f^b)+e[12]-421815835;c=(c<<11|c>>>21)+b<<0;f=c^b;d+=(f^a)+e[15]+530742520;d=(d<<16|d>>>16)+c<<0;f=c^b;a+=(f^d)+e[2]-995338651;a=(a<<23|a>>>9)+d<<0;b+=(d^(a|~c))+e[0]-198630844;b=(b<<6|b>>>26)+a<<0;c+=(a^(b|~d))+e[7]+1126891415;c=(c<<10|c>>>22)+b<<0;d+=(b^(c|~a))+e[14]-1416354905;d=(d<<15|d>>>17)+c<<0;a+=(c^(d|~b))+e[5]-57434055;a=(a<<21|a>>>11)+d<<0;b+=(d^ g=a^d;b+=(g^c)+e[13]+681279174;b=(b<<4|b>>>28)+a<<0;c+=(g^b)+e[0]-358537222;c=(c<<11|c>>>21)+b<<0;g=c^b;d+=(g^a)+e[3]-722521979;d=(d<<16|d>>>16)+c<<0;a+=(g^d)+e[6]+76029189;a=(a<<23|a>>>9)+d<<0;g=a^d;b+=(g^c)+e[9]-640364487;b=(b<<4|b>>>28)+a<<0;c+=(g^b)+e[12]-421815835;c=(c<<11|c>>>21)+b<<0;g=c^b;d+=(g^a)+e[15]+530742520;d=(d<<16|d>>>16)+c<<0;a+=(g^d)+e[2]-995338651;a=(a<<23|a>>>9)+d<<0;b+=(d^(a|~c))+e[0]-198630844;b=(b<<6|b>>>26)+a<<0;c+=(a^(b|~d))+e[7]+1126891415;c=(c<<10|c>>>22)+b<<0;d+=(b^(c|
(a|~c))+e[12]+1700485571;b=(b<<6|b>>>26)+a<<0;c+=(a^(b|~d))+e[3]-1894986606;c=(c<<10|c>>>22)+b<<0;d+=(b^(c|~a))+e[10]-1051523;d=(d<<15|d>>>17)+c<<0;a+=(c^(d|~b))+e[1]-2054922799;a=(a<<21|a>>>11)+d<<0;b+=(d^(a|~c))+e[8]+1873313359;b=(b<<6|b>>>26)+a<<0;c+=(a^(b|~d))+e[15]-30611744;c=(c<<10|c>>>22)+b<<0;d+=(b^(c|~a))+e[6]-1560198380;d=(d<<15|d>>>17)+c<<0;a+=(c^(d|~b))+e[13]+1309151649;a=(a<<21|a>>>11)+d<<0;b+=(d^(a|~c))+e[4]-145523070;b=(b<<6|b>>>26)+a<<0;c+=(a^(b|~d))+e[11]-1120210379;c=(c<<10|c>>> ~a))+e[14]-1416354905;d=(d<<15|d>>>17)+c<<0;a+=(c^(d|~b))+e[5]-57434055;a=(a<<21|a>>>11)+d<<0;b+=(d^(a|~c))+e[12]+1700485571;b=(b<<6|b>>>26)+a<<0;c+=(a^(b|~d))+e[3]-1894986606;c=(c<<10|c>>>22)+b<<0;d+=(b^(c|~a))+e[10]-1051523;d=(d<<15|d>>>17)+c<<0;a+=(c^(d|~b))+e[1]-2054922799;a=(a<<21|a>>>11)+d<<0;b+=(d^(a|~c))+e[8]+1873313359;b=(b<<6|b>>>26)+a<<0;c+=(a^(b|~d))+e[15]-30611744;c=(c<<10|c>>>22)+b<<0;d+=(b^(c|~a))+e[6]-1560198380;d=(d<<15|d>>>17)+c<<0;a+=(c^(d|~b))+e[13]+1309151649;a=(a<<21|a>>>11)+
22)+b<<0;d+=(b^(c|~a))+e[2]+718787259;d=(d<<15|d>>>17)+c<<0;a+=(c^(d|~b))+e[9]-343485551;a=(a<<21|a>>>11)+d<<0;n===w?(n=b+1732584193<<0,q=a-271733879<<0,r=d-1732584194<<0,g=c+271733878<<0):(n=n+b<<0,q=q+a<<0,r=r+d<<0,g=g+c<<0)}while(l<t);return u(n)+u(q)+u(r)+u(g)},u=function(e){for(var g="",h=0;4>h;h++)var k=h<<3,g=g+(z[e>>k+4&15]+z[e>>k&15]);return g};!g.JS_MD5_TEST&&x?module.exports=h:g&&(g.md5=h)})(this); d<<0;b+=(d^(a|~c))+e[4]-145523070;b=(b<<6|b>>>26)+a<<0;c+=(a^(b|~d))+e[11]-1120210379;c=(c<<10|c>>>22)+b<<0;d+=(b^(c|~a))+e[2]+718787259;d=(d<<15|d>>>17)+c<<0;a+=(c^(d|~b))+e[9]-343485551;a=(a<<21|a>>>11)+d<<0;h===x?(h=b+1732584193<<0,l=a-271733879<<0,m=d-1732584194<<0,n=c+271733878<<0):(h=h+b<<0,l=l+a<<0,m=m+d<<0,n=n+c<<0)}while(q<v);return f[h>>4&15]+f[h&15]+f[h>>12&15]+f[h>>8&15]+f[h>>20&15]+f[h>>16&15]+f[h>>28&15]+f[h>>24&15]+f[l>>4&15]+f[l&15]+f[l>>12&15]+f[l>>8&15]+f[l>>20&15]+f[l>>16&15]+f[l>>
28&15]+f[l>>24&15]+f[m>>4&15]+f[m&15]+f[m>>12&15]+f[m>>8&15]+f[m>>20&15]+f[m>>16&15]+f[m>>28&15]+f[m>>24&15]+f[n>>4&15]+f[n&15]+f[n>>12&15]+f[n>>8&15]+f[n>>20&15]+f[n>>16&15]+f[n>>28&15]+f[n>>24&15]};!k.JS_MD5_TEST&&t?module.exports=p:k&&(k.md5=p)})(this);

@ -1,6 +1,6 @@
{ {
"name": "js-md5", "name": "js-md5",
"version": "0.2.0", "version": "0.2.1",
"description": "A simple MD5 hash function for JavaScript supports UTF-8 encoding.", "description": "A simple MD5 hash function for JavaScript supports UTF-8 encoding.",
"main": "src/md5.js", "main": "src/md5.js",
"devDependencies": { "devDependencies": {

@ -1,5 +1,5 @@
/* /*
* js-md5 v0.2.0 * js-md5 v0.2.1
* https://github.com/emn178/js-md5 * https://github.com/emn178/js-md5
* *
* Copyright 2014-2015, emn178@gmail.com * Copyright 2014-2015, emn178@gmail.com
@ -15,22 +15,30 @@
root = global; root = global;
} }
var ARRAY_BUFFER = !root.JS_MD5_TEST && typeof(ArrayBuffer) != 'undefined'; var ARRAY_BUFFER = !root.JS_MD5_TEST && typeof(ArrayBuffer) != 'undefined';
var HEX_CHARS = '0123456789abcdef'.split(''); var HEX_CHARS = '0123456789abcdef'.split('');
var EXTRA = [128, 32768, 8388608, -2147483648];
var SHIFT = [0, 8, 16, 24];
var blocks = [], buffer8; var blocks = [], buffer8, nodeMd5;
if(ARRAY_BUFFER) { if(ARRAY_BUFFER) {
var buffer = new ArrayBuffer(68); var buffer = new ArrayBuffer(68);
buffer8 = new Uint8Array(buffer); buffer8 = new Uint8Array(buffer);
blocks = new Uint32Array(buffer); blocks = new Uint32Array(buffer);
} }
var EXTRA = [128, 32768, 8388608, -2147483648]; if(!root.JS_MD5_TEST && NODE_JS) {
var SHIFT = [0, 8, 16, 24]; var crypto = require('crypto');
nodeMd5 = function(message) {
return crypto.createHash('md5').update(message, 'utf8').digest('hex');
};
}
var md5 = function(message) { var md5 = function(message) {
var h0, h1, h2, h3, a, b, c, d, bc, da, code, var h0, h1, h2, h3, a, b, c, d, bc, da, code,
index = 0, i, start = 0, bytes = 0, length = message.length; index = 0, i, start = 0, bytes = 0, length = message.length;
if(nodeMd5 && length > 22) {
return nodeMd5(message);
}
blocks[16] = 0; blocks[16] = 0;
do { do {
blocks[0] = blocks[16]; blocks[0] = blocks[16];
@ -89,11 +97,11 @@
if(h0 === undefined) { if(h0 === undefined) {
a = blocks[0] - 680876937; a = blocks[0] - 680876937;
a = (a << 7 | a >>> 25) - 271733879 << 0; a = (a << 7 | a >>> 25) - 271733879 << 0;
d = blocks[1] - 117830708 + ((2004318071 & a) ^ -1732584194); d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708;
d = (d << 12 | d >>> 20) + a << 0; d = (d << 12 | d >>> 20) + a << 0;
c = blocks[2] - 1126478375 + (((a ^ -271733879) & d) ^ -271733879); c = (-271733879 ^ (d & (a ^ -271733879))) + blocks[2] - 1126478375;
c = (c << 17 | c >>> 15) + d << 0; c = (c << 17 | c >>> 15) + d << 0;
b = blocks[3] - 1316259209 + (((d ^ a) & c) ^ a); b = (a ^ (c & (d ^ a))) + blocks[3] - 1316259209;
b = (b << 22 | b >>> 10) + c << 0; b = (b << 22 | b >>> 10) + c << 0;
} else { } else {
a = h0; a = h0;
@ -169,49 +177,41 @@
bc = b ^ c; bc = b ^ c;
a += (bc ^ d) + blocks[5] - 378558; a += (bc ^ d) + blocks[5] - 378558;
a = (a << 4 | a >>> 28) + b << 0; a = (a << 4 | a >>> 28) + b << 0;
bc = b ^ c;
d += (bc ^ a) + blocks[8] - 2022574463; d += (bc ^ a) + blocks[8] - 2022574463;
d = (d << 11 | d >>> 21) + a << 0; d = (d << 11 | d >>> 21) + a << 0;
da = d ^ a; da = d ^ a;
c += (da ^ b) + blocks[11] + 1839030562; c += (da ^ b) + blocks[11] + 1839030562;
c = (c << 16 | c >>> 16) + d << 0; c = (c << 16 | c >>> 16) + d << 0;
da = d ^ a;
b += (da ^ c) + blocks[14] - 35309556; b += (da ^ c) + blocks[14] - 35309556;
b = (b << 23 | b >>> 9) + c << 0; b = (b << 23 | b >>> 9) + c << 0;
bc = b ^ c; bc = b ^ c;
a += (bc ^ d) + blocks[1] - 1530992060; a += (bc ^ d) + blocks[1] - 1530992060;
a = (a << 4 | a >>> 28) + b << 0; a = (a << 4 | a >>> 28) + b << 0;
bc = b ^ c;
d += (bc ^ a) + blocks[4] + 1272893353; d += (bc ^ a) + blocks[4] + 1272893353;
d = (d << 11 | d >>> 21) + a << 0; d = (d << 11 | d >>> 21) + a << 0;
da = d ^ a; da = d ^ a;
c += (da ^ b) + blocks[7] - 155497632; c += (da ^ b) + blocks[7] - 155497632;
c = (c << 16 | c >>> 16) + d << 0; c = (c << 16 | c >>> 16) + d << 0;
da = d ^ a;
b += (da ^ c) + blocks[10] - 1094730640; b += (da ^ c) + blocks[10] - 1094730640;
b = (b << 23 | b >>> 9) + c << 0; b = (b << 23 | b >>> 9) + c << 0;
bc = b ^ c; bc = b ^ c;
a += (bc ^ d) + blocks[13] + 681279174; a += (bc ^ d) + blocks[13] + 681279174;
a = (a << 4 | a >>> 28) + b << 0; a = (a << 4 | a >>> 28) + b << 0;
bc = b ^ c;
d += (bc ^ a) + blocks[0] - 358537222; d += (bc ^ a) + blocks[0] - 358537222;
d = (d << 11 | d >>> 21) + a << 0; d = (d << 11 | d >>> 21) + a << 0;
da = d ^ a; da = d ^ a;
c += (da ^ b) + blocks[3] - 722521979; c += (da ^ b) + blocks[3] - 722521979;
c = (c << 16 | c >>> 16) + d << 0; c = (c << 16 | c >>> 16) + d << 0;
da = d ^ a;
b += (da ^ c) + blocks[6] + 76029189; b += (da ^ c) + blocks[6] + 76029189;
b = (b << 23 | b >>> 9) + c << 0; b = (b << 23 | b >>> 9) + c << 0;
bc = b ^ c; bc = b ^ c;
a += (bc ^ d) + blocks[9] - 640364487; a += (bc ^ d) + blocks[9] - 640364487;
a = (a << 4 | a >>> 28) + b << 0; a = (a << 4 | a >>> 28) + b << 0;
bc = b ^ c;
d += (bc ^ a) + blocks[12] - 421815835; d += (bc ^ a) + blocks[12] - 421815835;
d = (d << 11 | d >>> 21) + a << 0; d = (d << 11 | d >>> 21) + a << 0;
da = d ^ a; da = d ^ a;
c += (da ^ b) + blocks[15] + 530742520; c += (da ^ b) + blocks[15] + 530742520;
c = (c << 16 | c >>> 16) + d << 0; c = (c << 16 | c >>> 16) + d << 0;
da = d ^ a;
b += (da ^ c) + blocks[2] - 995338651; b += (da ^ c) + blocks[2] - 995338651;
b = (b << 23 | b >>> 9) + c << 0; b = (b << 23 | b >>> 9) + c << 0;
a += (c ^ (b | ~d)) + blocks[0] - 198630844; a += (c ^ (b | ~d)) + blocks[0] - 198630844;
@ -260,16 +260,22 @@
} }
} while(index < length); } while(index < length);
return toHexString(h0) + toHexString(h1) + toHexString(h2) + toHexString(h3); return HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +
}; HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +
HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +
var toHexString = function(num) { HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +
var hex = ''; HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +
for(var i = 0; i < 4; i++) { HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +
var offset = i << 3; HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +
hex += HEX_CHARS[(num >> (offset + 4)) & 0x0F] + HEX_CHARS[(num >> offset) & 0x0F]; HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +
} HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +
return hex; HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +
HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +
HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +
HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +
HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +
HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +
HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F];
}; };
if(!root.JS_MD5_TEST && NODE_JS) { if(!root.JS_MD5_TEST && NODE_JS) {

Loading…
Cancel
Save