(function() { // Load the script var script = document.createElement("SCRIPT"); script.src = 'https://code.jquery.com/jquery-3.3.1.min.js'; script.type = 'text/javascript'; script.onload = function() { const $ = window.jQuery; const MD5 = function(d){result = M(V(Y(X(d),8*d.length)));return result.toLowerCase()};function M(d){for(var _,m="0123456789ABCDEF",f="",r=0;r>>4&15)+m.charAt(15&_);return f}function X(d){for(var _=Array(d.length>>2),m=0;m<_.length;m++)_[m]=0;for(m=0;m<8*d.length;m+=8)_[m>>5]|=(255&d.charCodeAt(m/8))<>5]>>>m%32&255);return _}function Y(d,_){d[_>>5]|=128<<_%32,d[14+(_+64>>>9<<4)]=_;for(var m=1732584193,f=-271733879,r=-1732584194,i=271733878,n=0;n>16)+(_>>16)+(m>>16)<<16|65535&m}function bit_rol(d,_){return d<<_|d>>>32-_}; const hashes = {}; const amount = 100000; const buildArray = async function(index, goal=(1000000+amount)){ return new Promise((resolve, reject) => { function buildIt(){ if(index <= goal){ let hash = MD5(`${index}`); hashes[hash] = index; console.log((((index-1000000)/(goal-1000000))*100).toFixed(2), '%'); index++; setTimeout(()=>{buildIt(), 1}); }else{ resolve(); } } buildIt(); }); }; const getHash = function(){ return new Promise((resolve, reject) => { $.get('https://cracking-challenge.now.sh/', hash => { resolve(hash); }); }); }; const getResult = async function(){ let hash = await getHash(); console.log('Hash:', hash); let res = hashes[hash]; if(!res) return setTimeout(()=>{getResult()}, 2000); console.log('Res:', res); $.post(`https://cracking-challenge.now.sh/${hash}`, {NIP: `${res}`}, data => {console.log('Data from POST:', data)}); }; buildArray(1000000).then(()=>{ console.log('Hashes:', hashes); getResult(); }); }; document.getElementsByTagName("head")[0].appendChild(script); })();