mirror of
https://github.com/emn178/js-sha256.git
synced 2026-08-12 20:32:16 +08:00
10 lines
8.5 KiB
JavaScript
10 lines
8.5 KiB
JavaScript
function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var h,i={exports:{}};
|
|
/**
|
|
* [js-sha256]{@link https://github.com/emn178/js-sha256}
|
|
*
|
|
* @version 0.12.0
|
|
* @author Chen, Yi-Cyuan [emn178@gmail.com]
|
|
* @copyright Chen, Yi-Cyuan 2014-2026
|
|
* @license MIT
|
|
*/h=i,function(){var t="input is invalid type",i="object"==typeof window,s=i?window:{};s.JS_SHA256_NO_WINDOW&&(i=!1),!i&&"object"==typeof self&&(s=self);var r=!s.JS_SHA256_NO_COMMON_JS&&h.exports,e=!s.JS_SHA256_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,a="0123456789abcdef".split(""),n=[-2147483648,8388608,32768,128],o=[24,16,8,0],f=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],u=["hex","array","digest","arrayBuffer"],c=[];!s.JS_SHA256_NO_NODE_JS&&Array.isArray||(Array.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)}),!e||!s.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(t){return"object"==typeof t&&t.buffer&&t.buffer.constructor===ArrayBuffer});var y=function(t,h){return function(i){return new A(h,!0).update(i)[t]()}},p=function(t){var h=y("hex",t);h.create=function(){return new A(t)},h.update=function(t){return h.create().update(t)};for(var i=0;i<u.length;++i){var s=u[i];h[s]=y(s,t)}return h},l=function(t,h){return function(i,s){return new w(i,h,!0).update(s)[t]()}},d=function(t){var h=l("hex",t);h.create=function(h){return new w(h,t)},h.update=function(t,i){return h.create(t).update(i)};for(var i=0;i<u.length;++i){var s=u[i];h[s]=l(s,t)}return h};function A(t,h){h?(c[0]=c[16]=c[1]=c[2]=c[3]=c[4]=c[5]=c[6]=c[7]=c[8]=c[9]=c[10]=c[11]=c[12]=c[13]=c[14]=c[15]=0,this.blocks=c):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=t}function w(h,i,s){var r,a=typeof h;if("string"===a){var n,o=[],f=h.length,u=0;for(r=0;r<f;++r)(n=h.charCodeAt(r))<128?o[u++]=n:n<2048?(o[u++]=192|n>>>6,o[u++]=128|63&n):n<55296||n>=57344?(o[u++]=224|n>>>12,o[u++]=128|n>>>6&63,o[u++]=128|63&n):(n=65536+((1023&n)<<10|1023&h.charCodeAt(++r)),o[u++]=240|n>>>18,o[u++]=128|n>>>12&63,o[u++]=128|n>>>6&63,o[u++]=128|63&n);h=o}else{if("object"!==a)throw new Error(t);if(null===h)throw new Error(t);if(e&&h.constructor===ArrayBuffer)h=new Uint8Array(h);else if(!(Array.isArray(h)||e&&ArrayBuffer.isView(h)))throw new Error(t)}h.length>64&&(h=new A(i,!0).update(h).array());var c=[],y=[];for(r=0;r<64;++r){var p=h[r]||0;c[r]=92^p,y[r]=54^p}A.call(this,i,s),this.update(y),this.oKeyPad=c,this.inner=!0,this.sharedMemory=s}A.prototype.update=function(h){if(!this.finalized){var i,s=typeof h;if("string"!==s){if("object"!==s)throw new Error(t);if(null===h)throw new Error(t);if(e&&h.constructor===ArrayBuffer)h=new Uint8Array(h);else if(!(Array.isArray(h)||e&&ArrayBuffer.isView(h)))throw new Error(t);i=!0}for(var r,a,n=0,f=h.length,u=this.blocks;n<f;){if(this.hashed&&(this.hashed=!1,u[0]=this.block,this.block=u[16]=u[1]=u[2]=u[3]=u[4]=u[5]=u[6]=u[7]=u[8]=u[9]=u[10]=u[11]=u[12]=u[13]=u[14]=u[15]=0),i)for(a=this.start;n<f&&a<64;++n)u[a>>>2]|=h[n]<<o[3&a++];else for(a=this.start;n<f&&a<64;++n)(r=h.charCodeAt(n))<128?u[a>>>2]|=r<<o[3&a++]:r<2048?(u[a>>>2]|=(192|r>>>6)<<o[3&a++],u[a>>>2]|=(128|63&r)<<o[3&a++]):r<55296||r>=57344?(u[a>>>2]|=(224|r>>>12)<<o[3&a++],u[a>>>2]|=(128|r>>>6&63)<<o[3&a++],u[a>>>2]|=(128|63&r)<<o[3&a++]):(r=65536+((1023&r)<<10|1023&h.charCodeAt(++n)),u[a>>>2]|=(240|r>>>18)<<o[3&a++],u[a>>>2]|=(128|r>>>12&63)<<o[3&a++],u[a>>>2]|=(128|r>>>6&63)<<o[3&a++],u[a>>>2]|=(128|63&r)<<o[3&a++]);this.lastByteIndex=a,this.bytes+=a-this.start,a>=64?(this.block=u[16],this.start=a-64,this.hash(),this.hashed=!0):this.start=a}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296|0,this.bytes=this.bytes%4294967296),this}},A.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,h=this.lastByteIndex;t[16]=this.block,t[h>>>2]|=n[3&h],this.block=t[16],h>=56&&(this.hashed||this.hash(),t[0]=this.block,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.hBytes<<3|this.bytes>>>29,t[15]=this.bytes<<3,this.hash()}},A.prototype.hash=function(){var t,h,i,s,r,e,a,n,o,u=this.h0,c=this.h1,y=this.h2,p=this.h3,l=this.h4,d=this.h5,A=this.h6,w=this.h7,b=this.blocks;for(t=16;t<64;++t)h=((r=b[t-15])>>>7|r<<25)^(r>>>18|r<<14)^r>>>3,i=((r=b[t-2])>>>17|r<<15)^(r>>>19|r<<13)^r>>>10,b[t]=b[t-16]+h+b[t-7]+i|0;for(o=c&y,t=0;t<64;t+=4)this.first?(this.is224?(e=300032,w=(r=b[0]-1413257819)-150054599|0,p=r+24177077|0):(e=704751109,w=(r=b[0]-210244248)-1521486534|0,p=r+143694565|0),this.first=!1):(h=(u>>>2|u<<30)^(u>>>13|u<<19)^(u>>>22|u<<10),s=(e=u&c)^u&y^o,w=p+(r=w+(i=(l>>>6|l<<26)^(l>>>11|l<<21)^(l>>>25|l<<7))+(l&d^~l&A)+f[t]+b[t])|0,p=r+(h+s)|0),h=(p>>>2|p<<30)^(p>>>13|p<<19)^(p>>>22|p<<10),s=(a=p&u)^p&c^e,A=y+(r=A+(i=(w>>>6|w<<26)^(w>>>11|w<<21)^(w>>>25|w<<7))+(w&l^~w&d)+f[t+1]+b[t+1])|0,h=((y=r+(h+s)|0)>>>2|y<<30)^(y>>>13|y<<19)^(y>>>22|y<<10),s=(n=y&p)^y&u^a,d=c+(r=d+(i=(A>>>6|A<<26)^(A>>>11|A<<21)^(A>>>25|A<<7))+(A&w^~A&l)+f[t+2]+b[t+2])|0,h=((c=r+(h+s)|0)>>>2|c<<30)^(c>>>13|c<<19)^(c>>>22|c<<10),s=(o=c&y)^c&p^n,l=u+(r=l+(i=(d>>>6|d<<26)^(d>>>11|d<<21)^(d>>>25|d<<7))+(d&A^~d&w)+f[t+3]+b[t+3])|0,u=r+(h+s)|0,this.chromeBugWorkAround=!0;this.h0=this.h0+u|0,this.h1=this.h1+c|0,this.h2=this.h2+y|0,this.h3=this.h3+p|0,this.h4=this.h4+l|0,this.h5=this.h5+d|0,this.h6=this.h6+A|0,this.h7=this.h7+w|0},A.prototype.hex=function(){this.finalize();var t=this.h0,h=this.h1,i=this.h2,s=this.h3,r=this.h4,e=this.h5,n=this.h6,o=this.h7,f=a[t>>>28&15]+a[t>>>24&15]+a[t>>>20&15]+a[t>>>16&15]+a[t>>>12&15]+a[t>>>8&15]+a[t>>>4&15]+a[15&t]+a[h>>>28&15]+a[h>>>24&15]+a[h>>>20&15]+a[h>>>16&15]+a[h>>>12&15]+a[h>>>8&15]+a[h>>>4&15]+a[15&h]+a[i>>>28&15]+a[i>>>24&15]+a[i>>>20&15]+a[i>>>16&15]+a[i>>>12&15]+a[i>>>8&15]+a[i>>>4&15]+a[15&i]+a[s>>>28&15]+a[s>>>24&15]+a[s>>>20&15]+a[s>>>16&15]+a[s>>>12&15]+a[s>>>8&15]+a[s>>>4&15]+a[15&s]+a[r>>>28&15]+a[r>>>24&15]+a[r>>>20&15]+a[r>>>16&15]+a[r>>>12&15]+a[r>>>8&15]+a[r>>>4&15]+a[15&r]+a[e>>>28&15]+a[e>>>24&15]+a[e>>>20&15]+a[e>>>16&15]+a[e>>>12&15]+a[e>>>8&15]+a[e>>>4&15]+a[15&e]+a[n>>>28&15]+a[n>>>24&15]+a[n>>>20&15]+a[n>>>16&15]+a[n>>>12&15]+a[n>>>8&15]+a[n>>>4&15]+a[15&n];return this.is224||(f+=a[o>>>28&15]+a[o>>>24&15]+a[o>>>20&15]+a[o>>>16&15]+a[o>>>12&15]+a[o>>>8&15]+a[o>>>4&15]+a[15&o]),f},A.prototype.toString=A.prototype.hex,A.prototype.digest=function(){this.finalize();var t=this.h0,h=this.h1,i=this.h2,s=this.h3,r=this.h4,e=this.h5,a=this.h6,n=this.h7,o=[t>>>24&255,t>>>16&255,t>>>8&255,255&t,h>>>24&255,h>>>16&255,h>>>8&255,255&h,i>>>24&255,i>>>16&255,i>>>8&255,255&i,s>>>24&255,s>>>16&255,s>>>8&255,255&s,r>>>24&255,r>>>16&255,r>>>8&255,255&r,e>>>24&255,e>>>16&255,e>>>8&255,255&e,a>>>24&255,a>>>16&255,a>>>8&255,255&a];return this.is224||o.push(n>>>24&255,n>>>16&255,n>>>8&255,255&n),o},A.prototype.array=A.prototype.digest,A.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(this.is224?28:32),h=new DataView(t);return h.setUint32(0,this.h0),h.setUint32(4,this.h1),h.setUint32(8,this.h2),h.setUint32(12,this.h3),h.setUint32(16,this.h4),h.setUint32(20,this.h5),h.setUint32(24,this.h6),this.is224||h.setUint32(28,this.h7),t},w.prototype=new A,w.prototype.finalize=function(){if(A.prototype.finalize.call(this),this.inner){this.inner=!1;var t=this.array();A.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(t),A.prototype.finalize.call(this)}};var b=p();b.sha256=b,b.sha224=p(!0),b.sha256.hmac=d(),b.sha224.hmac=d(!0),r?h.exports=b:(s.sha256=b.sha256,s.sha224=b.sha224)}();var s=t(i.exports);const{sha224:r}=s;export{s as default,r as sha224,s as sha256};
|