Post
Topic
Board Development & Technical Discussion
Merits 7 from 2 users
Re: Collection of 18.509 found and used Brainwallets
by
MagicByt3
on 06/02/2019, 12:11:02 UTC
⭐ Merited by bones261 (4) ,vapourminer (3)
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.

Code:
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  Wink

Code:

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

Code:
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.

Code:
//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