If I were in Satoshi's place and had to create a puzzle, I would use a method like this. This way, I wouldn’t need to hold on to a bunch of private keys.
python code:
import hashlib
import random
def generate_hex_numbers(key, count):
hash_input = key.encode('utf-8')
hashed_value = hashlib.sha256(hash_input).hexdigest()
hex_numbers = set()
random.seed(hashed_value)
index_width = 7
hex_width = 25
start_range_width = 30
end_range_width = 30
print(f"{'Index':<{index_width}} {'Hex Value':<{hex_width}} {'Start Range':<{start_range_width}} {'End Range':<{end_range_width}}")
print("-" * (index_width + hex_width + start_range_width + end_range_width + 4))
for i in range(scount, count + 1):
random_number = random.randint(2 ** i, 2 ** (i + 1))
hex_number = hex(random_number).removeprefix('0x')
start_range = f'{2 ** i:x}'
end_range = f'{2 ** (i + 1):x}'
print(f"{i + 1:<{index_width}} {hex_number:<{hex_width}} {start_range:<{start_range_width}} {end_range:<{end_range_width}}")
return
key = 'satoshi'
scount = 1
count = 65
key = input ("Enter Pharpass : ")
hex_values = generate_hex_numbers(key, count)
A program that tests with random letters
import hashlib
import random
import string
import main
index_width = 7
hex_width = 25
start_range_width = 30
end_range_width = 30
def generate_random_word(length):
characters = string.ascii_letters + string.digits
random_word = ''.join(random.choice(characters) for _ in range(length))
return random_word
def generate_hex_numbers(key):
hash_input = key.encode('utf-8')
hashed_value = hashlib.sha256(hash_input).hexdigest()
hex_numbers = set()
random.seed(hashed_value)
random_number = random.randint(2**65, 2 **66)
hex_number = hex(random_number).removeprefix('0x')
start_range = f'{2 **65:x}'
end_range = f'{2 **66:x}'
print(f"\r{hex_number:<{hex_width}} {start_range:<{start_range_width}} {end_range:<{end_range_width}} {'2832ed74f2b5e35ee':<{hex_width}} {key:<{15}}",end='')
if (hex_number == "2832ed74f2b5e35ee"):
input ("Found!!!")
return
print(f"{'Hex Value':<{hex_width}} {'Start Range':<{start_range_width}} {'End Range':<{end_range_width}} {'Source':<{hex_width}} {'Key':<15}")
print("-" * ((hex_width*3) + start_range_width + end_range_width))
while True:
key = "satoshi "+generate_random_word(5)
hex_values = generate_hex_numbers(key)