العملات الالكترونية

FreeBitcoin

Web hosting

Earn Free Bat With Brave Browser

Web hosting

CryptoTab

Web hosting

Generate DogeCoin Wallet python انشاء محفظة الدوجكوين

 السلام عليكم ورحمة الله تعالى وبركاته 
اخواني الكرام لقد بحثت كثيرا عن طريقة انشاء محفظة الدوجكوين باستخدام         البايتون ولم أجد سوى  على بعض الأكواد التي لاتعمل بشكل صحيح ..!!  
👇 لذا قررت التعمق في الموضوع و الحمد لله وصلت الى نتيجة                   

ملاحظة : الكود عمل بشكل جيد على نظام التشغيل ويندوز ... ولم يجرب على أنظمة أخرى 

(PrivateKey) كمثال  مفتاح خاص

 2d8036d81e2dd519574b40932072347c1be9924a6a9a73511b9c95b2559cbbc6 :

 

(Compressed Public Key)عند استخدام المفتاح العام المضغوط 

DAAKHn1zLEh957XjyyY3Z1nevZ5mW4s5Xc : (Address)سيعطينا العنوان التالي

QQ95JVt3P1SPBqjRfxgzjwThYsPSA8KZvU4TBVo4SBW4zAkRSWJ8 :(WIF) الويف سيكون بهذا الشكل

  (UNCompressed Public Key)عند استخدام المفتاح العام الغير المضغوط

DAi56XKUF1oj9ckFNWVwsjEKgjnTBLsVLZ : (Address)سيعطينا العنوان التالي 

            6JUf8bBf9cSgvCwvd1qV32TtnHQD3XCumjqMtKJgkKEqV1K43yz :(WIF) الويف سيكون     

 




import base58

import ecdsa

import random

import hashlib

from binascii import unhexlify

import os

import time

def get_signing_key(raw_priv):

    return ecdsa.SigningKey.from_string(raw_priv, curve=ecdsa.SECP256k1)

def sha256(x):    

    return hashlib.sha256(x).digest()


def hash_160(public_key):   

    md = hashlib.new('ripemd160')

    md.update(sha256(public_key))

    return md.digest()

def pubtoaddress(pubkey):

    bthash = b'\x1e'+ hash_160(pubkey)

    return base58.b58encode_check(bthash)

def generate():

    secret = str(os.urandom(32)) \

    + str(random.randrange(2**256)) \

    + str(int(time.time() * 1000000))

    return sha256(secret.encode())

def privtopub(bpriv,vcom='compressed'):    # or 'uncompressed'

    sign = get_signing_key(bpriv)

    return sign.get_verifying_key().to_string(vcom)

def toWif(bpriv,vcom='compressed'):

    vsign = b'\x9e'+(bpriv)

    if vcom=='compressed':

       final = vsign + b'\x01'

       return base58.b58encode_check(final)

    return base58.b58encode_check(vsign)

    

if __name__ == '__main__':

    priv = generate()

    print (priv.hex())


    pubcomp = privtopub(priv)

    addr = pubtoaddress(pubcomp)

    bwif = toWif(priv)

    print ("....Compressed ....")

    print ("Address : ",addr.decode())

    print ("wif : " ,bwif.decode())

    print ("Public Key : \n",pubcomp.hex())

    print ("\n....UnCompressed ....")      

    pubuncomp = privtopub(priv,'uncompressed')

    bwif2 = toWif(priv,"uncomp")

    addr2 = pubtoaddress(pubuncomp)

    print ("Address : " ,addr2.decode())

    print ("wif : " ,bwif2.decode())    

    print ("Public Key : \n",pubuncomp.hex())


-----------------------------------------


ليست هناك تعليقات:

إرسال تعليق

الصفحات