mirror of
https://github.com/emn178/js-md5.git
synced 2026-08-13 04:51:44 +08:00
* Improve performance.
This commit is contained in:
@@ -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
-1
@@ -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",
|
||||||
|
|||||||
Vendored
+11
-10
@@ -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
-1
@@ -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": {
|
||||||
|
|||||||
+33
-27
@@ -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;
|
||||||
@@ -249,7 +249,7 @@
|
|||||||
|
|
||||||
if(h0 === undefined) {
|
if(h0 === undefined) {
|
||||||
h0 = a + 1732584193 << 0;
|
h0 = a + 1732584193 << 0;
|
||||||
h1 = b - 271733879<< 0;
|
h1 = b - 271733879 << 0;
|
||||||
h2 = c - 1732584194 << 0;
|
h2 = c - 1732584194 << 0;
|
||||||
h3 = d + 271733878 << 0;
|
h3 = d + 271733878 << 0;
|
||||||
} else {
|
} else {
|
||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user