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.
import random
filename = "YourWordList.txt"
def main(filename):
words_file = open(filename, 'r')
words = words_file.read().split("\n")
temp_words = []
for word in words:
temp_words.append(word.strip("\r"))
words = temp_words
while True:
length = int(raw_input("12:"))
for i in range(0,length):
print(words[random.randrange(0,len(words)+1)]),
print("\n")
if __name__ == "__main__":
main(filename)
Still buggy welcome any adaptation

Output
12:12
twist flush ranch screen yard film option walk stuff sick maximum stumble
12:12
ill banner replace snack athlete wage patient right sell bicycle meadow weekend
12:12
knock include learn fruit video drama sort crunch cost people undo inherit
12:12
close symbol either voyage cool life obtain enemy valve process consider project
12:12
fish tube lunar among adjust inch transfer slight evil tell apology negative
12:12
host century basket drift scatter raven job carbon excite gym biology hospital
12:12
soup verify mouse whisper weather resource upon lens slim consider celery
12:12
farm gold useless area renew settle until soap rent attract unique ceiling
12:12
code stage dad two brick clock gospel voice easily impose grunt cry
12:12
roast garment board wise fabric bus bundle idea street asthma horse language
I have also been piping in random text like such
1xjPr0ta5PsTrKTlETa3
ay9RDUrEhjdkNX6ynm8V
GsAupTvPwo3t0875dsBF
LCHaTQYseeu833Wrs3eu
53fCknZ7XGn2CSpDhLVV
jX8Tex8rafMjEsQTmY9S
yuOEOXF0JzYc0TmB4R36
MolQV7IKX15RSSo4s7OM
ZoKMjxUvV5QwTL8ZdCRo
9YLZNaUklLxx6rCwyQKg
lekYEIMpEhkPlnFw32bk
W7meYuwMyrJtnsL3biLH
8z1FKk39xpPtzzLmtdeQ
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?
Thanks