]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/BIP39.git/commitdiff
added code to calculate hack time of split cards
authorMatthew Cornelisse <squarerootofnegativeone@gmail.com>
Wed, 28 Nov 2018 07:12:29 +0000 (01:12 -0600)
committerGitHub <noreply@github.com>
Wed, 28 Nov 2018 07:12:29 +0000 (01:12 -0600)
src/js/index.js

index a778799cee0a700cd88bcc0361588c50b312ca88..79c3c649e566fac1d4c4cbf492c11f5c3cbb147a 100644 (file)
@@ -45,6 +45,7 @@
     DOM.entropyFilterWarning = DOM.entropyContainer.find(".filter-warning");
     DOM.phrase = $(".phrase");
        DOM.splitPhrase = $(".phraseSplit");
+       DOM.phraseSplitWarn = $(".phraseSplitWarn");
     DOM.passphrase = $(".passphrase");
     DOM.generateContainer = $(".generate-container");
     DOM.generate = $(".generate");
                        cards[i]='Card '+(i+1)+': '+wordArrayToPhrase(cards[i]);                                                                //combine words on card back to string
                }
                DOM.splitPhrase.val(cards.join("\r\n"));                                                                //make words visible
+               var triesPerSecond=10000000000;                                                                                 //assumed number of tries per second
+               var hackTime=Math.pow(2,wordCount*10/3)/triesPerSecond;                                 //get number of bits of unknown data per card
+               if (hackTime<1) {
+                       hackTime="<1 second";
+               } else if (hackTime<86400) {
+                       hackTime=Math.floor(hackTime)+" seconds";
+               } else if(hackTime<31557600) {
+                       hackTime=Math.floor(hackTime/86400)+" days";
+               } else {
+                       hackTime=Math.floor(hackTime/31557600)+" years";
+               }
+               DOM.phraseSplitWarn.html("Time to hack with only one card: "+hackTime);
        }
 
     function isUsingOwnEntropy() {