puzzle: 66 
?? Possibilities : ?? puzzle: 67 
?? Possibilities : ?? In my previous two posts, a question mark turned into an answer. As I mentioned, there are 5 to 20 possible starting points, and the answer is...
puzzle: 66 2832ed74 Possibilities : 10 puzzle: 67 730fc235 Possibilities : 13
Seed : 1198740450 KHex : 2832ed74 Seed : 2113081982 KHex : 730fc235
Seed : 1869248704 KHex : 2832ed74 Seed : 2179848786 KHex : 730fc235
Seed : 3920977047 KHex : 2832ed74 Seed : 2620256395 KHex : 730fc235
Seed : 4138865358 KHex : 2832ed74 Seed : 3559516538 KHex : 730fc235
Seed : 5491054614 KHex : 2832ed74 Seed : 5559894373 KHex : 730fc235
Seed : 5889540521 KHex : 2832ed74 Seed : 5960477113 KHex : 730fc235
Seed : 6227837743 KHex : 2832ed74 Seed : 6204436682 KHex : 730fc235
Seed : 7311367263 KHex : 2832ed74 Seed : 7016671995 KHex : 730fc235
Seed : 7442940504 KHex : 2832ed74 Seed : 8305603871 KHex : 730fc235
Seed : 8850149776 KHex : 2832ed74 Seed : 8560029709 KHex : 730fc235
Seed : 8633074902 KHex : 730fc235
Seed : 9737552820 KHex : 730fc235
Seed : 9997208084 KHex : 730fc235
Hi @zahid888. I am curious about this from last year.. I even write some python script to try to understand this, but still didnt get that :
import hashlib
from ecdsa import SigningKey, SECP256k1
import binascii
import base58
import random
import time
def set_random_seed(manual_seed=None):
if manual_seed is not None:
random.seed(manual_seed)
else:
# Auto seed between 1000000000 to 9999999999
random_seed = random.randint(1000000000, 9999999999)
random.seed(random_seed)
print(f"Auto Generated Seed: {random_seed}")
def get_random_private_key(start_range, end_range):
return random.randint(start_range, end_range)
def private_key_to_public_key(private_key_hex):
signing_key = SigningKey.from_string(bytes.fromhex(private_key_hex), curve=SECP256k1)
verifying_key = signing_key.get_verifying_key()
pub_key = verifying_key.to_string("compressed")
return pub_key
def public_key_to_address(public_key):
sha256_hash = hashlib.sha256(public_key).digest()
ripemd160_hash = hashlib.new('ripemd160')
ripemd160_hash.update(sha256_hash)
hash160 = ripemd160_hash.digest()
version_hash160 = b'\x00' + hash160
double_sha256 = hashlib.sha256(hashlib.sha256(version_hash160).digest()).digest()
binary_address = version_hash160 + double_sha256[:4]
address = base58.b58encode(binary_address).decode('utf-8')
return address
def generate_address_from_private_key(private_key_int):
private_key_hex = format(private_key_int, '064x')
public_key = private_key_to_public_key(private_key_hex)
address = public_key_to_address(public_key)
return {
'private_key': private_key_hex,
'address': address
}
def generate_from_bit_range(bit_number):
start_range = 2 ** (bit_number - 1)
end_range = (2 ** bit_number) - 1
private_key_int = get_random_private_key(start_range, end_range)
result = generate_address_from_private_key(private_key_int)
print(f"\nBit {bit_number}")
print(f"Range: {hex(start_range)[2:]}:{hex(end_range)[2:]}")
print(f"Address: {result['address']}")
print(f"Private Key: {result['private_key']}")
print("-" * 80)
return result
def main():
while True:
print("\nSelect seed option:")
print("\n1. Manual seed (input your own number)")
print("2. Auto seed (random between 1000000000 to 9999999999)")
print("3. Exit")
choice = input("\nEnter your choice (1-3): ")
if choice == "1":
try:
seed = int(input("Enter your seed number: "))
set_random_seed(seed)
except ValueError:
print("Invalid input. Please enter a valid number.")
continue
elif choice == "2":
set_random_seed()
elif choice == "3":
print("Exiting program...")
break
else:
print("Invalid choice. Please select 1, 2, or 3.")
continue
print("\n=== Random Generation from Bit Ranges ===")
for bit in range(1, 70):
generate_from_bit_range(bit)
if __name__ == "__main__":
main()