mirror of
https://github.com/emn178/js-md5.git
synced 2026-08-13 04:51:44 +08:00
- Modern and lite builds generated from the same source. - support ESM. - Set up GitHub release action / provenance ### Fixed - Fix uploading coverage to coveralls - fix recognize environment is node when use browserfs
11 lines
7.8 KiB
JavaScript
11 lines
7.8 KiB
JavaScript
/**
|
|
* [js-md5]{@link https://github.com/emn178/js-md5}
|
|
*
|
|
* @namespace md5
|
|
* @version 0.9.0
|
|
* @author Chen, Yi-Cyuan [emn178@gmail.com]
|
|
* @copyright Chen, Yi-Cyuan 2014-2026
|
|
* @license MIT
|
|
*/
|
|
!function(){var t="input is invalid type",r="object"==typeof window,i=r?window:{};i.JS_MD5_NO_WINDOW&&(r=!1);var e=!r&&"object"==typeof self,h=!i.JS_MD5_NO_NODE_JS&&!r&&"object"==typeof process&&process.versions&&process.versions.node;h?i=global:e&&(i=self);var s,n=!i.JS_MD5_NO_COMMON_JS&&"object"==typeof module&&module.exports,o="function"==typeof define&&define.amd,a="0123456789abcdef".split(""),f=[128,32768,8388608,-2147483648],u=["hex","array","digest","arrayBuffer"],y=[],c=new ArrayBuffer(68);s=new Uint8Array(c),y=new Uint32Array(c);var d=Array.isArray,p=ArrayBuffer.isView,l=function(t){return function(r){return new b(!0).update(r)[t]()}},w=function(r){var i=require("crypto"),e=require("buffer").Buffer,h=e.from;return function(s){if("string"==typeof s)return i.createHash("md5").update(s,"utf8").digest("hex");if(null==s)throw new Error(t);return s.constructor===ArrayBuffer&&(s=new Uint8Array(s)),d(s)||p(s)||s.constructor===e?i.createHash("md5").update(h(s)).digest("hex"):r(s)}};function b(t){if(t)y[0]=y[16]=y[1]=y[2]=y[3]=y[4]=y[5]=y[6]=y[7]=y[8]=y[9]=y[10]=y[11]=y[12]=y[13]=y[14]=y[15]=0,this.blocks=y,this.buffer8=s;else{var r=new ArrayBuffer(68);this.buffer8=new Uint8Array(r),this.blocks=new Uint32Array(r)}this.h0=this.h1=this.h2=this.h3=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0}b.prototype.update=function(r){if(this.finalized)throw new Error("finalize already called");var i=function(r){var i=typeof r;if("string"===i)return[r,!0];if("object"!==i||null===r)throw new Error(t);if(r.constructor===ArrayBuffer)return[new Uint8Array(r),!1];if(!d(r)&&!p(r))throw new Error(t);return[r,!1]}(r);r=i[0];for(var e,h,s=i[1],n=0,o=r.length,a=this.blocks,f=this.buffer8;n<o;){if(this.hashed&&(this.hashed=!1,a[0]=a[16],a[16]=a[1]=a[2]=a[3]=a[4]=a[5]=a[6]=a[7]=a[8]=a[9]=a[10]=a[11]=a[12]=a[13]=a[14]=a[15]=0),s)for(h=this.start;n<o&&h<64;++n)(e=r.charCodeAt(n))<128?f[h++]=e:e<2048?(f[h++]=192|e>>>6,f[h++]=128|63&e):e<55296||e>=57344?(f[h++]=224|e>>>12,f[h++]=128|e>>>6&63,f[h++]=128|63&e):(e=65536+((1023&e)<<10|1023&r.charCodeAt(++n)),f[h++]=240|e>>>18,f[h++]=128|e>>>12&63,f[h++]=128|e>>>6&63,f[h++]=128|63&e);else for(h=this.start;n<o&&h<64;++n)f[h++]=r[n];this.lastByteIndex=h,this.bytes+=h-this.start,h>=64?(this.start=h-64,this.hash(),this.hashed=!0):this.start=h}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296|0,this.bytes=this.bytes%4294967296),this},b.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,r=this.lastByteIndex;t[r>>>2]|=f[3&r],r>=56&&(this.hashed||this.hash(),t[0]=t[16],t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.bytes<<3,t[15]=this.hBytes<<3|this.bytes>>>29,this.hash()}},b.prototype.hash=function(){var t,r,i,e,h,s,n=this.blocks;this.first?r=((r=((t=((t=n[0]-680876937)<<7|t>>>25)-271733879|0)^(i=((i=(-271733879^(e=((e=(-1732584194^2004318071&t)+n[1]-117830708)<<12|e>>>20)+t|0)&(-271733879^t))+n[2]-1126478375)<<17|i>>>15)+e|0)&(e^t))+n[3]-1316259209)<<22|r>>>10)+i|0:(t=this.h0,r=this.h1,i=this.h2,r=((r+=((t=((t+=((e=this.h3)^r&(i^e))+n[0]-680876936)<<7|t>>>25)+r|0)^(i=((i+=(r^(e=((e+=(i^t&(r^i))+n[1]-389564586)<<12|e>>>20)+t|0)&(t^r))+n[2]+606105819)<<17|i>>>15)+e|0)&(e^t))+n[3]-1044525330)<<22|r>>>10)+i|0),r=((r+=((t=((t+=(e^r&(i^e))+n[4]-176418897)<<7|t>>>25)+r|0)^(i=((i+=(r^(e=((e+=(i^t&(r^i))+n[5]+1200080426)<<12|e>>>20)+t|0)&(t^r))+n[6]-1473231341)<<17|i>>>15)+e|0)&(e^t))+n[7]-45705983)<<22|r>>>10)+i|0,r=((r+=((t=((t+=(e^r&(i^e))+n[8]+1770035416)<<7|t>>>25)+r|0)^(i=((i+=(r^(e=((e+=(i^t&(r^i))+n[9]-1958414417)<<12|e>>>20)+t|0)&(t^r))+n[10]-42063)<<17|i>>>15)+e|0)&(e^t))+n[11]-1990404162)<<22|r>>>10)+i|0,r=((r+=((t=((t+=(e^r&(i^e))+n[12]+1804603682)<<7|t>>>25)+r|0)^(i=((i+=(r^(e=((e+=(i^t&(r^i))+n[13]-40341101)<<12|e>>>20)+t|0)&(t^r))+n[14]-1502002290)<<17|i>>>15)+e|0)&(e^t))+n[15]+1236535329)<<22|r>>>10)+i|0,r=((r+=((e=((e+=(r^i&((t=((t+=(i^e&(r^i))+n[1]-165796510)<<5|t>>>27)+r|0)^r))+n[6]-1069501632)<<9|e>>>23)+t|0)^t&((i=((i+=(t^r&(e^t))+n[11]+643717713)<<14|i>>>18)+e|0)^e))+n[0]-373897302)<<20|r>>>12)+i|0,r=((r+=((e=((e+=(r^i&((t=((t+=(i^e&(r^i))+n[5]-701558691)<<5|t>>>27)+r|0)^r))+n[10]+38016083)<<9|e>>>23)+t|0)^t&((i=((i+=(t^r&(e^t))+n[15]-660478335)<<14|i>>>18)+e|0)^e))+n[4]-405537848)<<20|r>>>12)+i|0,r=((r+=((e=((e+=(r^i&((t=((t+=(i^e&(r^i))+n[9]+568446438)<<5|t>>>27)+r|0)^r))+n[14]-1019803690)<<9|e>>>23)+t|0)^t&((i=((i+=(t^r&(e^t))+n[3]-187363961)<<14|i>>>18)+e|0)^e))+n[8]+1163531501)<<20|r>>>12)+i|0,r=((r+=((e=((e+=(r^i&((t=((t+=(i^e&(r^i))+n[13]-1444681467)<<5|t>>>27)+r|0)^r))+n[2]-51403784)<<9|e>>>23)+t|0)^t&((i=((i+=(t^r&(e^t))+n[7]+1735328473)<<14|i>>>18)+e|0)^e))+n[12]-1926607734)<<20|r>>>12)+i|0,r=((r+=((s=(e=((e+=((h=r^i)^(t=((t+=(h^e)+n[5]-378558)<<4|t>>>28)+r|0))+n[8]-2022574463)<<11|e>>>21)+t|0)^t)^(i=((i+=(s^r)+n[11]+1839030562)<<16|i>>>16)+e|0))+n[14]-35309556)<<23|r>>>9)+i|0,r=((r+=((s=(e=((e+=((h=r^i)^(t=((t+=(h^e)+n[1]-1530992060)<<4|t>>>28)+r|0))+n[4]+1272893353)<<11|e>>>21)+t|0)^t)^(i=((i+=(s^r)+n[7]-155497632)<<16|i>>>16)+e|0))+n[10]-1094730640)<<23|r>>>9)+i|0,r=((r+=((s=(e=((e+=((h=r^i)^(t=((t+=(h^e)+n[13]+681279174)<<4|t>>>28)+r|0))+n[0]-358537222)<<11|e>>>21)+t|0)^t)^(i=((i+=(s^r)+n[3]-722521979)<<16|i>>>16)+e|0))+n[6]+76029189)<<23|r>>>9)+i|0,r=((r+=((s=(e=((e+=((h=r^i)^(t=((t+=(h^e)+n[9]-640364487)<<4|t>>>28)+r|0))+n[12]-421815835)<<11|e>>>21)+t|0)^t)^(i=((i+=(s^r)+n[15]+530742520)<<16|i>>>16)+e|0))+n[2]-995338651)<<23|r>>>9)+i|0,r=((r+=((e=((e+=(r^((t=((t+=(i^(r|~e))+n[0]-198630844)<<6|t>>>26)+r|0)|~i))+n[7]+1126891415)<<10|e>>>22)+t|0)^((i=((i+=(t^(e|~r))+n[14]-1416354905)<<15|i>>>17)+e|0)|~t))+n[5]-57434055)<<21|r>>>11)+i|0,r=((r+=((e=((e+=(r^((t=((t+=(i^(r|~e))+n[12]+1700485571)<<6|t>>>26)+r|0)|~i))+n[3]-1894986606)<<10|e>>>22)+t|0)^((i=((i+=(t^(e|~r))+n[10]-1051523)<<15|i>>>17)+e|0)|~t))+n[1]-2054922799)<<21|r>>>11)+i|0,r=((r+=((e=((e+=(r^((t=((t+=(i^(r|~e))+n[8]+1873313359)<<6|t>>>26)+r|0)|~i))+n[15]-30611744)<<10|e>>>22)+t|0)^((i=((i+=(t^(e|~r))+n[6]-1560198380)<<15|i>>>17)+e|0)|~t))+n[13]+1309151649)<<21|r>>>11)+i|0,r=((r+=((e=((e+=(r^((t=((t+=(i^(r|~e))+n[4]-145523070)<<6|t>>>26)+r|0)|~i))+n[11]-1120210379)<<10|e>>>22)+t|0)^((i=((i+=(t^(e|~r))+n[2]+718787259)<<15|i>>>17)+e|0)|~t))+n[9]-343485551)<<21|r>>>11)+i|0,this.first?(this.h0=t+1732584193|0,this.h1=r-271733879|0,this.h2=i-1732584194|0,this.h3=e+271733878|0,this.first=!1):(this.h0=this.h0+t|0,this.h1=this.h1+r|0,this.h2=this.h2+i|0,this.h3=this.h3+e|0)},b.prototype.hex=function(){this.finalize();var t=this.h0,r=this.h1,i=this.h2,e=this.h3;return a[t>>>4&15]+a[15&t]+a[t>>>12&15]+a[t>>>8&15]+a[t>>>20&15]+a[t>>>16&15]+a[t>>>28&15]+a[t>>>24&15]+a[r>>>4&15]+a[15&r]+a[r>>>12&15]+a[r>>>8&15]+a[r>>>20&15]+a[r>>>16&15]+a[r>>>28&15]+a[r>>>24&15]+a[i>>>4&15]+a[15&i]+a[i>>>12&15]+a[i>>>8&15]+a[i>>>20&15]+a[i>>>16&15]+a[i>>>28&15]+a[i>>>24&15]+a[e>>>4&15]+a[15&e]+a[e>>>12&15]+a[e>>>8&15]+a[e>>>20&15]+a[e>>>16&15]+a[e>>>28&15]+a[e>>>24&15]},b.prototype.toString=b.prototype.hex,b.prototype.digest=function(){this.finalize();var t=this.h0,r=this.h1,i=this.h2,e=this.h3;return[255&t,t>>>8&255,t>>>16&255,t>>>24&255,255&r,r>>>8&255,r>>>16&255,r>>>24&255,255&i,i>>>8&255,i>>>16&255,i>>>24&255,255&e,e>>>8&255,e>>>16&255,e>>>24&255]},b.prototype.array=b.prototype.digest,b.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(16),r=new Uint32Array(t);return r[0]=this.h0,r[1]=this.h1,r[2]=this.h2,r[3]=this.h3,t};var v=function(){var t=l("hex");h&&(t=w(t)),t.create=function(){return new b},t.update=function(r){return t.create().update(r)};for(var r=0;r<u.length;++r){var i=u[r];t[i]=l(i)}return t}();v.md5=v,n?module.exports=v:(i.md5=v,o&&define(function(){return v}))}();
|