Post
Topic
Board Proje Geliştirme
Merits 1 from 1 user
Re: Bitcoin; Algoritma Üzerine Yöntemler
by
Jupiter_01
on 01/10/2018, 09:14:44 UTC
⭐ Merited by Zz (1)
paython' da yazılmış bir yazılım
adres üretimi yapıp balance kontrolü yapıyor.
oluşan adresleri csv dosyasına atar...
modülleri yükleyip hemen kullanabilirsiniz.




#!/usr/bin/env python

import os
import ecdsa
import hashlib
import base58
import requests
import time
from smtplib import SMTP_SSL as SMTP
import logging


wif = ""



logging.basicConfig(filename='BTC_PrivateKeys_'+time.strftime("%Y-%m-%d-%H-%M")+'.csv', \
level=logging.INFO, format='%(message)s', datefmt='%Y-%m-%d,%H:%M:%S')
logging.getLogger("requests").setLevel(logging.WARNING)
logging.info ('"Timestamp", "WifKey", "PublicAddress"')



def ping_address(publicAddress):
   global pk
   global wif
   global publicKey

   """
   sends Request to a Block Explorer   
   Main one is blockexplorer - seems to be UNLIMITED...using chain.so has a rate limiter
   https://blockexplorer.com/api/addr/
   balance =  pmts['balance']
   https://chain.so/api/v2/get_address_balance/BTC/
   balance =  pmts['data']['confirmed_balance']
   """

   req = requests.get("https://blockexplorer.com/api/addr/"+publicAddress)
   pmts = req.json()
   balance =  pmts['balance']
   print balance

   # "WifKey", "HexKey", "PublicAddress", "PublicKey", "Balance"
   logging.info (''+ time.strftime("%m-%d-%y %H:%M:%S") +','+ wif +','+publicAddress +',        ' + str(balance) )

   if float(balance) > 0.00000000:
      print "Tebrikler, aktif bir hesap buldunuz"

def wif_conversion(pk):
   global wif
   padding = '80' + pk
   # print padding

   hashedVal = hashlib.sha256(padding.decode('hex')).hexdigest()
   checksum = hashlib.sha256(hashedVal.decode('hex')).hexdigest()[:8]
   # print hashedVal
   # print padding+checksum

   payload = padding + checksum
   wif = base58.b58encode(payload.decode('hex'))
   print wif
   

while True:

   pk = os.urandom(32).encode("hex")
   wif_conversion(pk)

   sk = ecdsa.SigningKey.from_string(pk.decode("hex"), curve = ecdsa.SECP256k1)
   vk = sk.verifying_key
   publicKey = ("\04" + vk.to_string())
   ripemd160 = hashlib.new('ripemd160')
   ripemd160.update(hashlib.sha256(publicKey).digest())
   networkAppend = '\00' + ripemd160.digest()
   checksum = hashlib.sha256(hashlib.sha256(networkAppend).digest()).digest()[:4]
   binary_address = networkAppend + checksum
   publicAddress = base58.b58encode(binary_address)
   print publicAddress
   while True:
      try:
         ping_address(publicAddress)   
      except ValueError:
         print "bekleyin 3 saniye"
         print pk
         print publicAddress
         time.sleep(3)
         continue

      break

# msg = "I own your Private Key for %s" %(publicAddress)
# signed_msg = sk.sign(msg)
# encoded_msg = signed_msg.encode("hex")