Skip to content

Instantly share code, notes, and snippets.

@dvlop
Created March 22, 2022 13:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dvlop/307da120c5a090b890b4bd1d117e69f4 to your computer and use it in GitHub Desktop.
Save dvlop/307da120c5a090b890b4bd1d117e69f4 to your computer and use it in GitHub Desktop.
#! python
import sys
from bitcoin import *
from datetime import datetime
from hashlib import sha256
addrCount = 0
def nextChar(currAddr,nextPos):
global addrCount
if nextPos < totalChars-1:
for x in range(len(pkeychars[nextPos])):
currAddr += pkeychars[nextPos][x]
nextChar(currAddr, nextPos+1)
currAddr = currAddr[:-1]
else:
for x in range(len(pkeychars[nextPos])):
currAddr += pkeychars[nextPos][x]
addrCount += 1
result = b58decode(currAddr)
result, check = result[:-4], result[-4:]
digest = sha256(sha256(result).digest()).digest()
if check == digest[:4]:
print('We have a possible winner!: ',currAddr)
f.write(currAddr+'\n')
if addrCount%1000000 == 0:
print(str(addrCount) + ' Addresses ' + str(datetime.now()))
currAddr = currAddr[:-1]
def b58decode(v):
'''Decode a Base58 encoded string'''
if not isinstance(v, str):
v = v.decode('ascii')
origlen = len(v)
v = v.lstrip(b58_digits[0])
newlen = len(v)
p, acc = 1, 0
for c in v[::-1]:
acc += p * b58_digits.index(c)
p *= 58
result = []
while acc > 0:
acc, mod = divmod(acc, 256)
result.append(mod)
return (bseq(result) + b'\0' * (origlen - newlen))[::-1]
if bytes == str: # python2
iseq = lambda s: map(ord, s)
bseq = lambda s: ''.join(map(chr, s))
buffer = lambda s: s
else: # python3
iseq = lambda s: s
bseq = bytes
buffer = lambda s: s.buffer
pkeychars = []
pkeychar0 = ['5']
pkeychar1 = ['J'] #UPPERCASE lightGreen #Jobs
pkeychar2 = ['K','k'] #Kevlar
pkeychar3 = ['P'] #UPPERCASE lightGreen #Pi
pkeychar4 = ['a','A'] #Atari
pkeychar5 = ['p'] #lowercase BLUE #Parachute
pkeychar6 = ['j','J'] #Jet
pkeychar7 = ['w','W'] #Wingtip??
pkeychar8 = ['g','G'] #Gutenberg
pkeychar9 = ['y'] #lowercase BLUE #yoyo
pkeychar10 = ['E'] #UPPERCASE lightGreen # mc^2 = E
pkeychar11 = ['i'] #lowercase BLUE #iron
pkeychar12 = ['j','p','J','P'] #jigsaw puzzle
pkeychar13 = ['3'] #UPPERCASE lightGreen #Morse code date
pkeychar14 = ['s','S'] #scissors
pkeychar15 = ['x'] #lowercase BLUE #xray
pkeychar16 = ['Y'] #UPPERCASE lightGreen #Yale
pkeychar17 = ['r','R'] #radar
pkeychar18 = ['C','A'] #UPPERCASE lightGreen #concertina/aspirin?
pkeychar19 = ['e','E'] #Eiffel Tower
pkeychar20 = ['n','N'] #Nobel
pkeychar21 = ['i','s'] #lowercase BLUE #ice skate
pkeychar22 = ['x','X'] #XX
pkeychar23 = ['y','Y'] #XY
pkeychar24 = ['i'] #lowercase BLUE #igloo
pkeychar25 = ['f','F','n','N'] #negatives? film?
pkeychar26 = ['g','G'] #Galileo
pkeychar27 = ['x','X'] #Xerox
pkeychar28 = ['q','Q'] #Question
pkeychar29 = ['k'] #lowercase BLUE #NaKamoto
pkeychar30 = ['V','E'] #UPPERCASE lightGreen #E-cig - Vaporiser
pkeychar31 = ['h','H'] #SatosHi
pkeychar32 = ['g','p','G','P'] #Phonograph, Gramophone
pkeychar33 = ['Z'] #UPPERCASE lightGreen #zipper
pkeychar34 = ['x','X'] #alphabet X
pkeychar35 = ['v','p'] #lowercase BLUE #Pfizer- Viagra?
pkeychar36 = ['9'] #Euro - 1996
pkeychar37 = ['b','B'] #Braile for B or 2
pkeychar38 = ['W'] #UPPERCASE lightGreen #Wifi
pkeychar39 = ['W','w'] #Windows
pkeychar40 = ['k'] #lowercase BLUE #Krypton element
pkeychar41 = ['n'] #lowercase BLUE #DNA
pkeychar42 = ['B'] #UPPERCASE lightGreen #Balloon
pkeychar43 = ['e','E'] #Einstein
pkeychar44 = ['x'] #lowercase BLUE #2009 MMIX
pkeychar45 = ['E','e'] #Etch a Sketch
pkeychar46 = ['G','g'] #Gameboy
pkeychar47 = ['x'] #lowercase BLUE #Xeon element
pkeychar48 = ['6','2'] #1927 LED invention date or maybe 1962?
pkeychar49 = ['t','T'] #Tesla
pkeychar50 = ['M'] #UPPERCASE lightGreen #Mouse
pkeychars = [pkeychar0, pkeychar1, pkeychar2, pkeychar3, pkeychar4, pkeychar5, pkeychar6, pkeychar7, pkeychar8, pkeychar9, pkeychar10, pkeychar11, pkeychar12, pkeychar13, pkeychar14, pkeychar15, pkeychar16, pkeychar17, pkeychar18, pkeychar19, pkeychar20, pkeychar21, pkeychar22, pkeychar23, pkeychar24, pkeychar25, pkeychar26, pkeychar27, pkeychar28, pkeychar29, pkeychar30, pkeychar31, pkeychar32, pkeychar33, pkeychar34, pkeychar35, pkeychar36, pkeychar37, pkeychar38, pkeychar39, pkeychar40, pkeychar41, pkeychar42, pkeychar43, pkeychar44, pkeychar45, pkeychar46, pkeychar47, pkeychar48, pkeychar49, pkeychar50]
b58_digits = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
totalChars = len(pkeychars)
print('\n#Chars: ', totalChars)
totalKeys = 1
for x in pkeychars:
totalKeys *= len(x)
print("Checking [" + str(totalKeys) + "] Keys...")
nextPos = 0
addr = ''
f = open('goodKeys2.txt', 'w')
starttime = datetime.now()
print('Start: ' + str(starttime))
f.write('Start: ' + str(starttime) + '\n')
nextChar(addr, nextPos)
endtime = datetime.now()
f.write('End: ' + str(endtime) + '\n')
f.write('Total: ' + str(endtime - starttime) + '\n')
f.close()
@dvlop
Copy link
Author

dvlop commented Mar 22, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment