I have been running some scans like this I grabbed about 2TB of word lists for brain wallet hunting.
At the moment it is currently syncing up with bitcoin-abe into mysql database (taking forever)
I wrote a small python script to create seeds that can be piped into a seed checker as such.
No results yet from random data.
From text word lists I have found around 500+ empty brain wallets so far most of which have already been published in the list.
I have been collecting hash160 addresses from the blockchain and have them in a bloom filter searching against the word list but still no results with a small sample space of hash160 at the moment.
I have also been testing with random hex being pushed to the brain wallet.
//using namespace std;
int main(int argc, char *argv[]) {
srand(time(NULL));
bool risky_mode = false;
bool even_only = false;
bool odd_only = false;
bool output_random = false;
bool use_lower = false;
bool use_upper = false;
bool use_len_8 = false;
bool use_len_9 = false;
bool no_0 = false;
bool no_1 = false;
int desired_uniques = 0;
int min_uniques = 6; // 94.6% chance of having 6 to 9 uniques
int max_uniques = 9;
int min_numbers = 4; // 94.02% chance of having 4 to 8 numbers
int max_numbers = 8;
int min_letters = 2; // 94.02% chance of having 2 to 6 letters
int max_letters = 6;
bool negate_sequential = true; // 89.8% chance of not having any 3 consecutive sequential chars (123) or reverse sequential chars (321)
int differential = 0;
int slot1_start_at = 0;
int slot1_stop_at = 0;
bool starts_with_letter = false;
bool make_next_start_at = false;
bool make_next_stop_at = false;
int make_next_start_at_cnt = 0;
int make_next_stop_at_cnt = 0;
unsigned long long int start_at_long = 0;
unsigned long long int stop_at_long = 0;
if (argc > 1) {
for (int i=1;i
if (stricmp(argv[i], "-risky") == 0) { risky_mode = true; }
if (stricmp(argv[i], "-evenonly") == 0) { even_only = true; }
if (stricmp(argv[i], "-oddonly") == 0) { odd_only = true; }
if (stricmp(argv[i], "-random") == 0) { output_random = true; }
if (stricmp(argv[i], "-lower") == 0) { use_lower = true; }
if (stricmp(argv[i], "-upper") == 0) { use_upper = true; }
if (stricmp(argv[i], "-len8") == 0) { use_len_8 = true; }
if (stricmp(argv[i], "-len9") == 0) { use_len_9 = true; }
if (stricmp(argv[i], "-no0") == 0) { no_0 = true; }
if (stricmp(argv[i], "-no1") == 0) { no_1 = true; }
if (stricmp(argv[i], "-no01") == 0) { no_0 = true; no_1 = true; }
if (stricmp(argv[i], "-no10") == 0) { no_0 = true; no_1 = true; }
if (stricmp(argv[i], "-1unique") == 0) { desired_uniques = min_uniques = max_uniques = 1; }
if (stricmp(argv[i], "-2uniques") == 0) { desired_uniques = min_uniques = max_uniques = 2; }
if (stricmp(argv[i], "-3uniques") == 0) { desired_uniques = min_uniques = max_uniques = 3; }
if (stricmp(argv[i], "-4uniques") == 0) { desired_uniques = min_uniques = max_uniques = 4; }
if (stricmp(argv[i], "-5uniques") == 0) { desired_uniques = min_uniques = max_uniques = 5; }
if (stricmp(argv[i], "-6uniques") == 0) { desired_uniques = min_uniques = max_uniques = 6; }
if (stricmp(argv[i], "-7uniques") == 0) { desired_uniques = min_uniques = max_uniques = 7; }
if (stricmp(argv[i], "-8uniques") == 0) { desired_uniques = min_uniques = max_uniques = 8; }
if (stricmp(argv[i], "-9uniques") == 0) { desired_uniques = min_uniques = max_uniques = 9; }
if (stricmp(argv[i], "-10uniques") == 0) { desired_uniques = min_uniques = max_uniques = 10; }
if (stricmp(argv[i], "-1minunique") == 0) { min_uniques = 1; } if (stricmp(argv[i], "-minunique1") == 0) { min_uniques = 1; } if (stricmp(argv[i], "-min1unique") == 0) { min_uniques = 1; }
if (stricmp(argv[i], "-2minuniques") == 0) { min_uniques = 2; } if (stricmp(argv[i], "-minuniques2") == 0) { min_uniques = 2; } if (stricmp(argv[i], "-min2uniques") == 0) { min_uniques = 2; }
if (stricmp(argv[i], "-3minuniques") == 0) { min_uniques = 3; } if (stricmp(argv[i], "-minuniques3") == 0) { min_uniques = 3; } if (stricmp(argv[i], "-min3uniques") == 0) { min_uniques = 3; }
if (stricmp(argv[i], "-4minuniques") == 0) { min_uniques = 4; } if (stricmp(argv[i], "-minuniques4") == 0) { min_uniques = 4; } if (stricmp(argv[i], "-min4uniques") == 0) { min_uniques = 4; }
if (stricmp(argv[i], "-5minuniques") == 0) { min_uniques = 5; } if (stricmp(argv[i], "-minuniques5") == 0) { min_uniques = 5; } if (stricmp(argv[i], "-min5uniques") == 0) { min_uniques = 5; }
if (stricmp(argv[i], "-6minuniques") == 0) { min_uniques = 6; } if (stricmp(argv[i], "-minuniques6") == 0) { min_uniques = 6; } if (stricmp(argv[i], "-min6uniques") == 0) { min_uniques = 6; }
if (stricmp(argv[i], "-7minuniques") == 0) { min_uniques = 7; } if (stricmp(argv[i], "-minuniques7") == 0) { min_uniques = 7; } if (stricmp(argv[i], "-min7uniques") == 0) { min_uniques = 7; }
if (stricmp(argv[i], "-8minuniques") == 0) { min_uniques = 8; } if (stricmp(argv[i], "-minuniques8") == 0) { min_uniques = 8; } if (stricmp(argv[i], "-min8uniques") == 0) { min_uniques = 8; }
if (stricmp(argv[i], "-9minuniques") == 0) { min_uniques = 9; } if (stricmp(argv[i], "-minuniques9") == 0) { min_uniques = 9; } if (stricmp(argv[i], "-min9uniques") == 0) { min_uniques = 9; }
if (stricmp(argv[i], "-10minuniques") == 0) { min_uniques = 10; } if (stricmp(argv[i], "-minuniques10") == 0) { min_uniques = 10; } if (stricmp(argv[i], "-min10uniques") == 0) { min_uniques = 10; }
if (stricmp(argv[i], "-1maxunique") == 0) { max_uniques = 1; } if (stricmp(argv[i], "-maxunique1") == 0) { max_uniques = 1; } if (stricmp(argv[i], "-max1unique") == 0) { max_uniques = 1; }
if (stricmp(argv[i], "-2maxuniques") == 0) { max_uniques = 2; } if (stricmp(argv[i], "-maxuniques2") == 0) { max_uniques = 2; } if (stricmp(argv[i], "-max2uniques") == 0) { max_uniques = 2; }
if (stricmp(argv[i], "-3maxuniques") == 0) { max_uniques = 3; } if (stricmp(argv[i], "-maxuniques3") == 0) { max_uniques = 3; } if (stricmp(argv[i], "-max3uniques") == 0) { max_uniques = 3; }
if (stricmp(argv[i], "-4maxuniques") == 0) { max_uniques = 4; } if (stricmp(argv[i], "-maxuniques4") == 0) { max_uniques = 4; } if (stricmp(argv[i], "-max4uniques") == 0) { max_uniques = 4; }
if (stricmp(argv[i], "-5maxuniques") == 0) { max_uniques = 5; } if (stricmp(argv[i], "-maxuniques5") == 0) { max_uniques = 5; } if (stricmp(argv[i], "-max5uniques") == 0) { max_uniques = 5; }
if (stricmp(argv[i], "-6maxuniques") == 0) { max_uniques = 6; } if (stricmp(argv[i], "-maxuniques6") == 0) { max_uniques = 6; } if (stricmp(argv[i], "-max6uniques") == 0) { max_uniques = 6; }
if (stricmp(argv[i], "-7maxuniques") == 0) { max_uniques = 7; } if (stricmp(argv[i], "-maxuniques7") == 0) { max_uniques = 7; } if (stricmp(argv[i], "-max7uniques") == 0) { max_uniques = 7; }
if (stricmp(argv[i], "-8maxuniques") == 0) { max_uniques = 8; } if (stricmp(argv[i], "-maxuniques8") == 0) { max_uniques = 8; } if (stricmp(argv[i], "-max8uniques") == 0) { max_uniques = 8; }
if (stricmp(argv[i], "-9maxuniques") == 0) { max_uniques = 9; } if (stricmp(argv[i], "-maxuniques9") == 0) { max_uniques = 9; } if (stricmp(argv[i], "-max9uniques") == 0) { max_uniques = 9; }
if (stricmp(argv[i], "-10maxuniques") == 0) { max_uniques = 10; } if (stricmp(argv[i], "-maxuniques10") == 0) { max_uniques = 10; } if (stricmp(argv[i], "-max10uniques") == 0) { max_uniques = 10; }
if (stricmp(argv[i], "-startswith0") == 0) { slot1_start_at = 0; starts_with_letter = true; }
if (stricmp(argv[i], "-startswith1") == 0) { slot1_start_at = 1; starts_with_letter = true; }
if (stricmp(argv[i], "-startswith2") == 0) { slot1_start_at = 2; starts_with_letter = true; }
if (stricmp(argv[i], "-startswith3") == 0) { slot1_start_at = 3; starts_with_letter = true; }
if (stricmp(argv[i], "-startswith4") == 0) { slot1_start_at = 4; starts_with_letter = true; }
if (stricmp(argv[i], "-startswith5") == 0) { slot1_start_at = 5; starts_with_letter = true; }
if (stricmp(argv[i], "-startswith6") == 0) { slot1_start_at = 6; starts_with_letter = true; }
if (stricmp(argv[i], "-startswith7") == 0) { slot1_start_at = 7; starts_with_letter = true; }
if (stricmp(argv[i], "-startswith8") == 0) { slot1_start_at = 8; starts_with_letter = true; }
if (stricmp(argv[i], "-startswith9") == 0) { slot1_start_at = 9; starts_with_letter = true; }
if (stricmp(argv[i], "-startswithA") == 0) { slot1_start_at = 10; starts_with_letter = true; }
if (stricmp(argv[i], "-startswithB") == 0) { slot1_start_at = 11; starts_with_letter = true; }
if (stricmp(argv[i], "-startswithC") == 0) { slot1_start_at = 12; starts_with_letter = true; }
if (stricmp(argv[i], "-startswithD") == 0) { slot1_start_at = 13; starts_with_letter = true; }
if (stricmp(argv[i], "-startswithE") == 0) { slot1_start_at = 14; starts_with_letter = true; }
if (stricmp(argv[i], "-startswithF") == 0) { slot1_start_at = 15; starts_with_letter = true; }
if (stricmp(argv[i], "-start") == 0) { make_next_start_at = true; make_next_start_at_cnt = i; }
if (stricmp(argv[i], "-stop") == 0) { make_next_stop_at = true; make_next_stop_at_cnt = i; }
if ((make_next_start_at) && (i == (make_next_start_at_cnt+1))) { std::istringstream str_to_num(argv[i]); str_to_num >> start_at_long; if (!str_to_num) {std::cout << "ERROR: start is not a number" << "\n"; return 1;} make_next_start_at = false; }
if ((make_next_stop_at) && (i == (make_next_stop_at_cnt+1))) { std::istringstream str_to_num(argv[i]); str_to_num >> stop_at_long; if (!str_to_num) {std::cout << "ERROR: stop is not a number" << "\n"; return 1;} make_next_stop_at = false; }
}
}
// ---------------------------------------------------
// Number of combinations (10-length)
// ---------------------------------------------------
// # of combos (10-length) = 1,099,511,627,776 (16^10) (13,194.14 GB)
// # of combos (10-length) with rules (6-9 uniques): 564,561,702,612 (51.3%) (6,774.74 GB)
// # of combos (10-length) with rules (10 uniques): 18,649,285,466 (1.7%) (223.79 GB)
// # of combos (10-length) with rules (09 uniques): 116,641,092,458 (10.6%) (1,399.69 GB)
// # of combos (10-length) with rules (08 uniques): 226,271,576,762 (20.6%) (2,715.26 GB)
// # of combos (10-length) with rules (07 uniques): 170,561,659,663 (15.5%) (2,046.74 GB)
// # of combos (10-length) with rules (06 uniques): 51,087,373,729 (4.6%) (613 GB)
// # of combos (10-length) with rules (05 uniques): 5,392,440,877 (0.5%) (64.7 GB)
// # of combos (10-length) with rules (04 uniques): 132,844,293 (0.012%) (1.59 GB)
// ---------------------------------------------------
// Number of combinations (10-length) (RISKY)
// ---------------------------------------------------
// # of combos (10-length) = 1,099,511,627,776 (16^10) (13,194.14 GB)
// # of combos (10-length) with rules (6-9 uniques): 367,647,332,933 (33.4%) (4,411.8 GB)
// # of combos (10-length) with rules (10 uniques): 12,010,291,278 (1.1%) (144.1 GB)
// # of combos (10-length) with rules (09 uniques): 75,876,130,604 (6.9%) (910.5 GB)
// # of combos (10-length) with rules (08 uniques): 147,638,929,917 (13.4%) (1,771.7 GB)
// # of combos (10-length) with rules (07 uniques): 111,045,927,794 (10.1%) (1,332.6 GB)
// # of combos (10-length) with rules (06 uniques): 33,086,344,618 (3.0%) (397 GB)
// # of combos (10-length) with rules (05 uniques): 3,472,496,526 (0.31%) (41.7 GB)
// # of combos (10-length) with rules (04 uniques): 85,114,150 (0.008%) (1.02 GB)
instead of creating the lists I am piping the output of the scan direct to the scanner which save on the disk space some what.
I would like to hash some lists of words I have then pipe the input to the scanner what would be the best method of hashing large passwords lists to a specific hash output?