Şimdi abi bize wallet dediğimiz 34haneli bitcoin cüzdanları verildi ve bunların anahtarları olan 16 basamaklı Hex formatındaki sayılar 10basamak+6basamak şeklinde verildi
ilk vazifemiz bunları birleştirip Hex formatında 16 basamaklı sayılar üretebilmek
İkinci vazifemiz elde ettiğimiz 16basamaklı Hex formatındaki sayıları (malumunuz her hex kodu bir cüzdanın WIF / Privatekey anahtarıdır) 34haneli bitcoin cüzdanı haline çevirmek
Üçüncü vazifemiz elde ettiğimiz 34 haneli wallet(compressed/uncompressed) yani sıkıştırlmış ve sıkıştırılmamış adresleri listedeki adreslerle çakıştırıp aynı olanları tespit etmek
Biz sayenizde birinci ve üçüncü etapları tamamladık sadece bizim için en zoru sizler için anladığım kadarıyla çok basit olan ortadaki etap kaldı
onu da yapabilirsek vazifemizi başarıya tamamlamış ve artık sonraki verilen adresleri aynı yöntemlerle tespit etmiş olacağız
Dediğiniz gibi belki biraz uğraşarak bi ihtimal bağımsız bir kod ile hex formundan walleta çevirebiliriz
Lakin bu bağımsız kodu sizin hazırladığınız kodun içinde çalışır hale nasıl getiririz onu yapamayız o durumda sizden destek isteyebiliriz
import bitcoin
Kod = input("Lütfen Hex Kodunuzu Girin:")
valid_private_key = False
while not valid_private_key:
private_key = Kod
decoded_private_key = bitcoin.decode_privkey(private_key, 'hex')
valid_private_key = 0 < decoded_private_key < bitcoin.N
print("Private key in hexadecimal is {}".format(private_key))
print("Private key in decimal is {}".format(decoded_private_key))
wif_encoded_private_key = bitcoin.encode_privkey(decoded_private_key, 'wif')
print("Private key in WIF is {}".format(wif_encoded_private_key))
compressed_private_key = private_key + '01'
print("Private key compressed in hexadecimal {}".format(compressed_private_key))
wif_compressed_private_key = bitcoin.encode_privkey(bitcoin.decode_privkey(compressed_private_key, 'hex'), 'wif')
print("Private key WIF compressed is {}".format(wif_compressed_private_key))
public_key = bitcoin.fast_multiply(bitcoin.G, decoded_private_key)
print("Public key (x,y) coordinates is".format(public_key))
hex_encoded_public_key = bitcoin.encode_pubkey(public_key, 'hex')
print("Hex encoded public key is {}".format(hex_encoded_public_key))
(public_key_x, public_key_y) = public_key
if (public_key_y % 2) == 0:
compressed_prefix = '02'
else:
compressed_prefix = '03'
hex_compressed_public_key = compressed_prefix + bitcoin.encode(public_key_x, 16)
print("Compressed Public Key (hex) is {}".format(hex_compressed_public_key))
print("Bitcoin Address (b58check) is {}".format(bitcoin.pubkey_to_address(public_key)))
print("Compressed Bitcoin Address (b58check) is: {}".format(bitcoin.pubkey_to_address(hex_compressed_public_key)))
ama bunu sizin verdiğiniz koda bir türlü yerleştiremedik
istediğimiz şeyi bir daha tekrar edeyim
ilk vazife
birinci ve ikinci txt dosyasındaki verileri birleştirip Hex formatında 16 basamaklı sayılar üretebilmek
bu tamamlandı
İkinci vazifemiz
Elde ettiğimiz 16basamaklı Hex formatındaki sayıları yukarıdaki kod vasıtasıyla wallet(compressed/uncompressed) yani sıkıştırlmış ve sıkıştırılmamış adresler üretmek
üçüncü vazifemiz
Elde ettiğimiz bu kodları üçüncü dosyamız yeralan mevcut adreslerle çakıştırıp aynı olan adresleri ve o adrese tekabül eden private keyleri dördüncü bir dosyaya yazdırmak
Ama benzer değilse boşuna hiç bir dosyaya yazdırıp yer kaplamasın
malumunuz hexadecimal “1” yazan altı siyah çizili olan bizim iki dosyayı birleştirerek oluşturduğumuz 16 haneli hex kodumuz (1’i denemek için girdim)
kod sonucu altı kırmızı çizili olan “Bitcoin address” ve “Compressed Bitcoin Address” oluşuyor
zaten bizim istediğimiz adreslerde bunlar ve bu iki adresi elimizdeki üçüncü. dosyadaki adreslerle çakıştırıp aynı olan adreslerin “Hex kodunu” veya altı mavi çizili olan “Private key WIF , Private key WIF Compressed” dördüncü dosyaya yazdırsın
Bu ikisini kullanmamız gerekiyor
Bitcoin address" ve "Compressed Bitcoin Address