1
0
Fork 0
An attempt to re-implement Python written by JC/yosignals for his Three-Word Password Attacks blog https://thecontractor.io/three-word-password-attacks/
Go to file
aidan 676604fad6 removed redundant go module file 2023-08-25 09:27:54 +01:00
rust revised rust implementation 2023-08-18 16:39:56 +01:00
.gitignore updated gitignore patten 2023-08-18 16:38:31 +01:00
LICENSE added Go and Python code 2023-08-17 07:51:27 +01:00
README.md updated implementation to python 2023-08-18 16:39:02 +01:00
calculate_combinations.py updated to use permutations and index-based access 2023-08-25 09:24:47 +01:00
regression_calc.py updated to use permutations and index-based access 2023-08-25 09:24:47 +01:00
three-word-comination-generator.py added plain implementation 2023-08-25 09:25:38 +01:00
time_comparison.py updated to use permutations and index-based access 2023-08-25 09:24:47 +01:00

README.md

three-word-combination-generator

An attempt to re-implement the Python written by JC/yosignals for his Three-Word Password Attacks blog: https://thecontractor.io/three-word-password-attacks/. Also some Python utilities for the fun of it. This code is paired with a blog post.

time_comparison.py

Open it and have a read. This was mostly for my own benefit in profiling different optimisation strategies. You can add cProfile hooks on the functions to get profiling data if needs be.

calculate_combinations.py

Modify var n on line 4 to the number of words in your input.txt to generate a firm total of the number of combinations and an estimate of the size of the file on disk, assuming an average word length of 10. You can change this assumed average on line 8.

regression_calc.py

Requires numpy and scipy installed (grab both from pip).

This is a utility to estimate how long it will take to generate combinations from source files with more words. Run gen_password_combinations.go on a series of small samples of your source (e.g., head -n {16,64,128,256,512} input.txt). Grab the value from "Elapsed Time" when they complete and plug them into the arrays on line 5 and 6. There are some existing examples in there already from my own local testing. The time_per_action values can be as precise as you like. Then modify var N on line 16 to the number of words in your input.txt and run to generate an estimated time in seconds to generate all the possible combinations.