• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

FinalCrypt - The No¹ One-Time Pad Encryption


Commit MetaInfo

Revisione60eb2f3e13c864e156c284aca0716413d4c5fbc (tree)
Time2019-11-13 12:39:33
Authorron <ronuitzaandam@gmai...>
Commiterron

Log Message

Date: 2019-11-13 Version: 5.6.3

Brute Force password dictionary testing 10 x faster
Previously: 950 pass/sec. Currently: 9950 pass/sec

Change Summary

Incremental Difference

--- a/changelog.txt
+++ b/changelog.txt
@@ -1,4 +1,9 @@
1-Date: 2019-10-04 Version: 5.6.2
1+Date: 2019-11-13 Version: 5.6.3
2+
3+Brute Force password dictionary testing 10 x faster
4+Previously: 950 pass/sec. Currently: 9950 pass/sec
5+
6+Date: 2019-11-04 Version: 5.6.2
27
38 Cleaned up action-buttons to improve usage clarity
49
--- a/manpage.txt
+++ b/manpage.txt
@@ -62,4 +62,4 @@ Parameters:
6262 <[-t "file/dir"]> Target items (files or directories) you want to encrypt (recursive).
6363 <[-b "batchfile"]> Batchfile with targetfiles you want to encrypt (only files).
6464
65-FinalCrypt 5.6.2 - Author: Ron de Jong <info@finalcrypt.org> - Copyright: © 2017-2019
\ No newline at end of file
65+FinalCrypt 5.6.3 - Author: Ron de Jong <info@finalcrypt.org> - Copyright: © 2017-2019
\ No newline at end of file
--- a/manpage_examples.txt
+++ b/manpage_examples.txt
@@ -76,4 +76,4 @@ Key Device Examples (Linux):
7676 java -cp finalcrypt.jar rdj/CLUI --encrypt -k /dev/sdc1 -t myfile
7777 java -cp finalcrypt.jar rdj/CLUI --decrypt -k /dev/sdc1 -t myfile
7878
79-FinalCrypt 5.6.2 - Author: Ron de Jong <info@finalcrypt.org> - Copyright: © 2017-2019
\ No newline at end of file
79+FinalCrypt 5.6.3 - Author: Ron de Jong <info@finalcrypt.org> - Copyright: © 2017-2019
\ No newline at end of file
--- a/nbproject/project.properties
+++ b/nbproject/project.properties
@@ -8,7 +8,7 @@ application.homepage=http://www.finalcrypt.org/
88 application.splash=
99 application.title=FinalCrypt
1010 application.vendor=FinalCrypt
11-application.implementation.version=5.6.2
11+application.implementation.version=5.6.3
1212 auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.expand-tabs=false
1313 auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.indent-shift-width=4
1414 auxiliary.org-netbeans-modules-editor-indent.CodeStyle.project.spaces-per-tab=4
--- a/src/rdj/CLUI.java
+++ b/src/rdj/CLUI.java
@@ -122,7 +122,10 @@ public class CLUI implements UI
122122 protected boolean test = false;
123123 protected String testAnswer = "";
124124 protected FCPath keyFCPath;
125-
125+ protected FCPath bruteForceFCPathTargetPrint;
126+ private int bfcounter;
127+ private int bflines;
128+ private Stats bruteForceDataStats;
126129
127130 public CLUI(String[] args)
128131 {
@@ -451,14 +454,21 @@ public class CLUI implements UI
451454 FCPath dictFileFCPath = Validate.getFCPath(ui, "NA", Paths.get(dictionaryFilePathString), false, Paths.get(dictionaryFilePathString), false, true);
452455 if ( ( dictFileFCPath.exist ) && (dictFileFCPath.isValidFile) && (dictFileFCPath.isReadable) && ( dictFileFCPath.size > 0) )
453456 {
454- int lines = 0;
455- try { lines = Files.readAllLines(dictFileFCPath.path).size(); } catch (IOException ex) { log("Files.readAllLines(" + dictFileFCPath.path.toAbsolutePath().toString() + ").size();" + ex.getMessage(), false, true, true, true, false); }
456-
457- long counter = 1;
458- Stats allDataStats = new Stats(); allDataStats.reset();
459- allDataStats.setAllDataStartNanoTime(); allDataStats.clock();
460-
461- log("\r\nStart Brute Force testing " + lines + " passwords...\r\n\r\n", false, true, true, false, false);
457+ bflines = 0;
458+ try { bflines = Files.readAllLines(dictFileFCPath.path).size(); } catch (IOException ex) { log("Files.readAllLines(" + dictFileFCPath.path.toAbsolutePath().toString() + ").size();" + ex.getMessage(), false, true, true, true, false); }
459+
460+ bfcounter = 1;
461+ bruteForceDataStats = new Stats(); bruteForceDataStats.reset();
462+ bruteForceDataStats.setAllDataStartNanoTime(); bruteForceDataStats.clock();
463+
464+ TimerTask printTask = new TimerTask() { @Override public void run()
465+ {
466+ if ( bruteForceFCPathTargetPrint != null ) { log("Brute Force testing target: \"" + bruteForceFCPathTargetPrint.path.toAbsolutePath().toString() + "\" password count: " + bfcounter + " " + (bfcounter / (bflines / 100 )) + "% \r\n", false, true, false, false, false); }
467+ }};
468+ Timer printTimer = new java.util.Timer(); printTimer.schedule(printTask, 1000L, 1000L);
469+
470+ log("\r\nStart Brute Force testing " + bflines + " passwords...\r\n\r\n", false, true, true, false, false);
471+ log("Brute Force testing target: \"" + targetFCPathList.get(0).path.toAbsolutePath().toString() + "\" password count: " + 1 + " " + (bfcounter / (bflines / 100 )) + "%\r\n", false, true, false, false, false);
462472 try
463473 {
464474 boolean pwdFound = false;
@@ -477,23 +487,27 @@ public class CLUI implements UI
477487 Validate.buildSelection(this, targetPathList, keyFCPath, targetFCPathList, symlink, pattern, negatePattern, finalCrypt.disabledMAC, false);
478488 pathlistloop: for (FCPath fcPathItem : targetFCPathList)
479489 {
480- log(counter + " testing target: \"" + fcPathItem.path.toAbsolutePath().toString() + "\" password: \"" + pwd + "\" result: " + fcPathItem.isDecryptable + "\r\n", false, true, true, false, false);
490+ bruteForceFCPathTargetPrint = fcPathItem;
491+// log(bfcounter + " testing target: \"" + fcPathItem.path.toAbsolutePath().toString() + "\" password: \"" + pwd + "\" result: " + fcPathItem.isDecryptable + "\r\n", false, true, false, false, false);
492+ bfcounter++;
481493 if (fcPathItem.isDecryptable) { pwdFound = true; break pwloop; }
482- counter++;
483494 }
484495 }
496+
497+ if ( bruteForceFCPathTargetPrint != null ) { log("Brute Force testing target: \"" + bruteForceFCPathTargetPrint.path.toAbsolutePath().toString() + "\" password count: " + (bfcounter - 1) + " " + (bfcounter / (bflines / 100 )) + "%\r\n", false, true, false, false, false); }
485498 if (pwdFound)
486499 {
487- log("\r\nPassword found: \"" + pwd + "\"\r\n", false, true, true, false, false);
500+ log("\r\nPassword found: \"" + pwd + "\"\r\n", false, true, false, false, false);
488501 }
489502 else
490503 {
491- log("\r\nPassword not found\r\n", false, true, true, false, false);
504+ log("\r\nPassword not found\r\n", false, true, false, false, false);
492505 }
493506 }
494507 catch (IOException ex) { log("Files.readAllLines(" + dictFileFCPath.path + ");" + ex.getMessage(), false, true, true, true, false); }
495- allDataStats.setAllDataEndNanoTime(); allDataStats.clock();
496- log("\r\nFinished Brute force testing " + (counter - 1) + " / " + lines + " passwords in " + allDataStats.getElapsedTime(allDataStats.getAllDataEndEpoch() - allDataStats.getAllDataStartEpoch()) + " " + allDataStats.getBruteForceThroughPut(counter, allDataStats.getAllDataEndEpoch() - allDataStats.getAllDataStartEpoch()) + "\r\n\r\n", false, true, true, false, false);
508+ bruteForceDataStats.setAllDataEndNanoTime(); bruteForceDataStats.clock();
509+ printTimer.cancel(); printTimer.purge();
510+ log("\r\nFinished Brute force testing " + (bfcounter - 1) + " / " + bflines + " passwords in " + bruteForceDataStats.getElapsedTime(bruteForceDataStats.getAllDataEndEpoch() - bruteForceDataStats.getAllDataStartEpoch()) + " " + bruteForceDataStats.getBruteForceThroughPut(bfcounter, bruteForceDataStats.getAllDataEndEpoch() - bruteForceDataStats.getAllDataStartEpoch()) + "\r\n\r\n", false, true, true, false, false);
497511 }
498512 else
499513 {
--- a/src/rdj/Stats.java
+++ b/src/rdj/Stats.java
@@ -177,8 +177,9 @@ public class Stats
177177 {
178178 String returnString = new String();
179179 double throughput = ( ((double)(items) / (((double)nanosecs / 1000000000.0))) ); // *1000 from mSec to Sec
180- String throughputString = String.format("%.1f", throughput);
181- returnString = "(average: " + getHumanSize(throughput,1,"Passwords") + "/s)\r\n";
180+ String throughputString = String.format("%.0f", throughput);
181+// returnString = "(average: " + getHumanSize(throughput,1,"Passwords") + "/s)\r\n";
182+ returnString = "(average: " + throughputString + " passwords/sec)\r\n";
182183
183184 return returnString;
184185 }
--- a/src/rdj/VERSION
+++ b/src/rdj/VERSION
@@ -1 +1 @@
1-5.6.2
\ No newline at end of file
1+5.6.3
\ No newline at end of file
--- a/src/rdj/VERSION2
+++ b/src/rdj/VERSION2
@@ -1,4 +1,4 @@
1-[Version] = {5.6.2}
1+[Version] = {5.6.3}
22 [] = {} ================================================================
33 [Release Notes] = {You are using a very old version of FinalCrypt}
44 [Release Message] = {Please visit the website and download the latest}
@@ -19,9 +19,10 @@
1919 [Upgrade Notes] = {Brute Force only works on the Command Line Interface}
2020 [Upgrade Notes] = {}
2121 [] = {} ----------------------------------------------------------------
22-[Update Notes] = {Update 2}
22+[Update Notes] = {Update 3}
2323 [Update Notes] = {}
24-[Update Notes] = {Cleaned up action-buttons to improve usage clarity}
24+[Update Notes] = {Brute Force password dictionary testing 10 x faster}
25+[Update Notes] = {Previously: 950 pass/sec. Currently: 9950 pass/sec}
2526 [] = {} --------------------------------------------------------------------------------------------------------
2627 [Alert Subject_] = {}
2728 [Alert Notes_] = {}