diff --git a/public/main.js b/public/main.js index d851088a01aa59cbb23c9065cb6b4f74fa5dd61c..4742f2f35b6d4bf2e6bcef98668a8fb547bac7fb 100644 --- a/public/main.js +++ b/public/main.js @@ -1,10 +1,19 @@ +const cores = navigator.hardwareConcurrency; + +addEventsListeners(document.querySelectorAll("#salt, #pass"),"change keyup",updateEstimate); +updateEstimate(); +function updateEstimate(){ + const idSecList = multiLineString2cleanArray(document.getElementById("salt").value); + const passList = multiLineString2cleanArray(document.getElementById("pass").value); + document.getElementById("combi").innerHTML = idSecList.length*passList.length; + document.getElementById("temps").innerHTML = (idSecList.length*passList.length)+"s"; +} document.getElementById("compute").addEventListener("click",e=>{ const pub = document.getElementById("pubkey").value.trim(); const pubRaw = Base58.decode(pub); - const idSecList = document.getElementById("salt").value.split("\n").map(str=>str.trim()); - const passList = document.getElementById("pass").value.split("\n").map(str=>str.trim()); - document.getElementById("combi").innerHTML = idSecList.length*passList.length; - document.getElementById("temps").innerHTML = (idSecList.length*passList.length)+"s"; + const idSecList = multiLineString2cleanArray(document.getElementById("salt").value); + const passList = multiLineString2cleanArray(document.getElementById("pass").value); + updateEstimate(); document.getElementById("percent").innerHTML = "0%"; for(let idSec of idSecList){ @@ -50,3 +59,11 @@ async function crypt(password, salt){ }); } +function addEventsListeners(triggerNodes,events,functions){ + if(!triggerNodes.length) triggerNodes = [triggerNodes]; + if(typeof events !== "object") events = events.split(" "); + if(typeof functions !== "object") functions = [functions]; + console.log(triggerNodes[0].addEventListener, events, functions); + for(let n of triggerNodes) events.forEach(e=> functions.forEach(f=>n.addEventListener(e,f))); +} +function multiLineString2cleanArray(rawStr){ return rawStr.split("\n").map(str=>str.trim()).filter(str=>str !== ""); }