PageSourceSearch

https://thegymbox.com/userauth/user/inc/sha1.js

js thegymbox.com collected 2026-10-06 22:40:00 UTC 4,877 bytes, 78 lines download raw bytes

1var hexcase=0;var b64pad="";function hex_sha1(s){return rstr2hex(rstr_sha1(str2rstr_utf8(s)));}
2function b64_sha1(s){return rstr2b64(rstr_sha1(str2rstr_utf8(s)));}
3function any_sha1(s,e){return rstr2any(rstr_sha1(str2rstr_utf8(s)),e);}
4function hex_hmac_sha1(k,d)
5{return rstr2hex(rstr_hmac_sha1(str2rstr_utf8(k),str2rstr_utf8(d)));}
6function b64_hmac_sha1(k,d)
7{return rstr2b64(rstr_hmac_sha1(str2rstr_utf8(k),str2rstr_utf8(d)));}
8function any_hmac_sha1(k,d,e)
9{return rstr2any(rstr_hmac_sha1(str2rstr_utf8(k),str2rstr_utf8(d)),e);}
10function sha1_vm_test()
11{return hex_sha1("abc").toLowerCase()=="a9993e364706816aba3e25717850c26c9cd0d89d";}
12function rstr_sha1(s)
13{return binb2rstr(binb_sha1(rstr2binb(s),s.length*8));}
14function rstr_hmac_sha1(key,data)
15{var bkey=rstr2binb(key);if(bkey.length>16)bkey=binb_sha1(bkey,key.length*8);var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++)
16{ipad[i]=bkey[i]^0x36363636;opad[i]=bkey[i]^0x5C5C5C5C;}
17var hash=binb_sha1(ipad.concat(rstr2binb(data)),512+data.length*8);return binb2rstr(binb_sha1(opad.concat(hash),512+160));}
18function rstr2hex(input)
19{try{hexcase}catch(e){hexcase=0;}
20var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var output="";var x;for(var i=0;i<input.length;i++)
21{x=input.charCodeAt(i);output+=hex_tab.charAt((x>>>4)&0x0F)
22+hex_tab.charAt(x&0x0F);}
23return output;}
24function rstr2b64(input)
25{try{b64pad}catch(e){b64pad='';}
26var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var output="";var len=input.length;for(var i=0;i<len;i+=3)
27{var triplet=(input.charCodeAt(i)<<16)|(i+1<len?input.charCodeAt(i+1)<<8:0)|(i+2<len?input.charCodeAt(i+2):0);for(var j=0;j<4;j++)
28{if(i*8+j*6>input.length*8)output+=b64pad;else output+=tab.charAt((triplet>>>6*(3-j))&0x3F);}}
29return output;}
30function rstr2any(input,encoding)
31{var divisor=encoding.length;var remainders=Array();var i,q,x,quotient;var dividend=Array(Math.ceil(input.length/2));for(i=0;i<dividend.length;i++)
32{dividend[i]=(input.charCodeAt(i*2)<<8)|input.charCodeAt(i*2+1);}
33while(dividend.length>0)
34{quotient=Array();x=0;for(i=0;i<dividend.length;i++)
35{x=(x<<16)+dividend[i];q=Math.floor(x/divisor);x-=q*divisor;if(quotient.length>0||q>0)
36quotient[quotient.length]=q;}
37remainders[remainders.length]=x;dividend=quotient;}
38var output="";for(i=remainders.length-1;i>=0;i--)
39output+=encoding.charAt(remainders[i]);var full_length=Math.ceil(input.length*8/(Math.log(encoding.length)/Math.log(2)))
40for(i=output.length;i<full_length;i++)
41output=encoding[0]+output;return output;}
42function str2rstr_utf8(input)
43{var output="";var i=-1;var x,y;while(++i<input.length)
44{x=input.charCodeAt(i);y=i+1<input.length?input.charCodeAt(i+1):0;if(0xD800<=x&&x<=0xDBFF&&0xDC00<=y&&y<=0xDFFF)
45{x=0x10000+((x&0x03FF)<<10)+(y&0x03FF);i++;}
46if(x<=0x7F)
47output+=String.fromCharCode(x);else if(x<=0x7FF)
48output+=String.fromCharCode(0xC0|((x>>>6)&0x1F),0x80|(x&0x3F));else if(x<=0xFFFF)
49output+=String.fromCharCode(0xE0|((x>>>12)&0x0F),0x80|((x>>>6)&0x3F),0x80|(x&0x3F));else if(x<=0x1FFFFF)
50output+=String.fromCharCode(0xF0|((x>>>18)&0x07),0x80|((x>>>12)&0x3F),0x80|((x>>>6)&0x3F),0x80|(x&0x3F));}
51return output;}
52function str2rstr_utf16le(input)
53{var output="";for(var i=0;i<input.length;i++)
54output+=String.fromCharCode(input.charCodeAt(i)&0xFF,(input.charCodeAt(i)>>>8)&0xFF);return output;}
55function str2rstr_utf16be(input)
56{var output="";for(var i=0;i<input.length;i++)
57output+=String.fromCharCode((input.charCodeAt(i)>>>8)&0xFF,input.charCodeAt(i)&0xFF);return output;}
58function rstr2binb(input)
59{var output=Array(input.length>>2);for(var i=0;i<output.length;i++)
60output[i]=0;for(var i=0;i<input.length*8;i+=8)
61output[i>>5]|=(input.charCodeAt(i/8)&0xFF)<<(24-i%32);return output;}
62function binb2rstr(input)
63{var output="";for(var i=0;i<input.length*32;i+=8)
64output+=String.fromCharCode((input[i>>5]>>>(24-i%32))&0xFF);return output;}
65function binb_sha1(x,len)
66{x[len>>5]|=0x80<<(24-len%32);x[((len+64>>9)<<4)+15]=len;var w=Array(80);var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;var e=-1009589776;for(var i=0;i<x.length;i+=16)
67{var olda=a;var oldb=b;var oldc=c;var oldd=d;var olde=e;for(var j=0;j<80;j++)
68{if(j<16)w[j]=x[i+j];else w[j]=bit_rol(w[j-3]^w[j-8]^w[j-14]^w[j-16],1);var t=safe_add(safe_add(bit_rol(a,5),sha1_ft(j,b,c,d)),safe_add(safe_add(e,w[j]),sha1_kt(j)));e=d;d=c;c=bit_rol(b,30);b=a;a=t;}
69a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd);e=safe_add(e,olde);}
70return Array(a,b,c,d,e);}
71function sha1_ft(t,b,c,d)
72{if(t<20)return(b&c)|((~b)&d);if(t<40)return b^c^d;if(t<60)return(b&c)|(b&d)|(c&d);return b^c^d;}
73function sha1_kt(t)
74{return(t<20)?1518500249:(t<40)?1859775393:(t<60)?-1894007588:-899497514;}
75function safe_add(x,y)
76{var lsw=(x&0xFFFF)+(y&0xFFFF);var msw=(x>>16)+(y>>16)+(lsw>>16);return(msw<<16)|(lsw&0xFFFF);}
77function bit_rol(num,cnt)
78{return(num<<cnt)|(num>>>(32-cnt));}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.