@Oyasumi-Punpun said in Создание hash для файла:
да отключен, вот я и найти не мог, эх спасибо мил человек.
А то я тут пол инете перешерстил но таки нашел :)
может кому сгодится для sha256 с поддержкой utf8
//https://codepen.io/aminraisy/pen/OeOvxr?editors=0010
var Sha256={hash:function(r,a){(a=void 0===a||a)&&(r=Utf8.encode(r));for(var t=[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],e=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],o=(r+=String.fromCharCode(128)).length/4+2,n=Math.ceil(o/16),h=new Array(n),u=0;u<n;u++){h[u]=new Array(16);for(var S=0;S<16;S++)h[u][S]=r.charCodeAt(64*u+4*S)<<24|r.charCodeAt(64*u+4*S+1)<<16|r.charCodeAt(64*u+4*S+2)<<8|r.charCodeAt(64*u+4*S+3)}h[n-1][14]=8*(r.length-1)/Math.pow(2,32),h[n-1][14]=Math.floor(h[n-1][14]),h[n-1][15]=8*(r.length-1)&4294967295;var f,c,i,C,d,R,g,v,A=new Array(64);for(u=0;u<n;u++){for(var m=0;m<16;m++)A[m]=h[u][m];for(m=16;m<64;m++)A[m]=Sha256.sigma1(A[m-2])+A[m-7]+Sha256.sigma0(A[m-15])+A[m-16]&4294967295;f=e[0],c=e[1],i=e[2],C=e[3],d=e[4],R=e[5],g=e[6],v=e[7];for(m=0;m<64;m++){var O=v+Sha256.Sigma1(d)+Sha256.Ch(d,R,g)+t[m]+A[m],T=Sha256.Sigma0(f)+Sha256.Maj(f,c,i);v=g,g=R,R=d,d=C+O&4294967295,C=i,i=c,c=f,f=O+T&4294967295}e[0]=e[0]+f&4294967295,e[1]=e[1]+c&4294967295,e[2]=e[2]+i&4294967295,e[3]=e[3]+C&4294967295,e[4]=e[4]+d&4294967295,e[5]=e[5]+R&4294967295,e[6]=e[6]+g&4294967295,e[7]=e[7]+v&4294967295}return Sha256.toHexStr(e[0])+Sha256.toHexStr(e[1])+Sha256.toHexStr(e[2])+Sha256.toHexStr(e[3])+Sha256.toHexStr(e[4])+Sha256.toHexStr(e[5])+Sha256.toHexStr(e[6])+Sha256.toHexStr(e[7])},ROTR:function(r,a){return a>>>r|a<<32-r},Sigma0:function(r){return Sha256.ROTR(2,r)^Sha256.ROTR(13,r)^Sha256.ROTR(22,r)},Sigma1:function(r){return Sha256.ROTR(6,r)^Sha256.ROTR(11,r)^Sha256.ROTR(25,r)},sigma0:function(r){return Sha256.ROTR(7,r)^Sha256.ROTR(18,r)^r>>>3},sigma1:function(r){return Sha256.ROTR(17,r)^Sha256.ROTR(19,r)^r>>>10},Ch:function(r,a,t){return r&a^~r&t},Maj:function(r,a,t){return r&a^r&t^a&t},toHexStr:function(r){for(var a="",t=7;t>=0;t--)a+=(r>>>4*t&15).toString(16);return a}},Utf8={encode:function(r){var a=r.replace(/[\u0080-\u07ff]/g,function(r){var a=r.charCodeAt(0);return String.fromCharCode(192|a>>6,128|63&a)});return a=a.replace(/[\u0800-\uffff]/g,function(r){var a=r.charCodeAt(0);return String.fromCharCode(224|a>>12,128|a>>6&63,128|63&a)})},decode:function(r){var a=r.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g,function(r){var a=(15&r.charCodeAt(0))<<12|(63&r.charCodeAt(1))<<6|63&r.charCodeAt(2);return String.fromCharCode(a)});return a=a.replace(/[\u00c0-\u00df][\u0080-\u00bf]/g,function(r){var a=(31&r.charCodeAt(0))<<6|63&r.charCodeAt(1);return String.fromCharCode(a)})}};
var value = [[MY_STRING]];
VAR_HASH = Sha256.hash(value);