Большинство примеров кода Perl на Github являются неподдерживаемых / сломанные / лет и у меня возникли проблемы получения какой-либо из них работают.
Нечто похожее на этот питон код:
Код:
импорт ECDSA
secp256k1curve = ecdsa.ellipticcurve.CurveFp (115792089237316195423570985008687907853269984665640564039457584007908834671663,0,7)
secp256k1point = ecdsa.ellipticcurve.Point (secp256k1curve, 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8,0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141)
secp256k1 = ecdsa.curves.Curve ( 'secp256k1', secp256k1curve, secp256k1point, (1,3,132,0,10))
# --------------------------------------
импорт binascii, hashlib
Защиту Адди (рк):
ПКО = ecdsa.SigningKey.from_secret_exponent (рк, secp256k1)
Публичный = binascii.hexlify (pko.get_verifying_key (). to_string ())
pubkey2 = hashlib.sha256 (binascii.unhexlify ( '04' + Публичных)). hexdigest ()
pubkey3 = hashlib.new ( 'ripemd160', binascii.unhexlify (pubkey2)). hexdigest ()
pubkey4 = hashlib.sha256 (binascii.unhexlify ( '00' + pubkey3)). hexdigest ()
pubkey5 = hashlib.sha256 (binascii.unhexlify (pubkey4)). hexdigest ()
pubkey6 = pubkey3 + pubkey5 [8]
pubnum = INT (pubkey6,16)
pubnumlist = []
в то время как pubnum = 0: pubnumlist.append (pubnum% 58); pubnum / = 58
адрес = «»
для л в [ «123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz» [х] для й в pubnumlist]:
адрес = L + адрес
возвращение «1» + адрес
печать Адди (0x18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725)
печать Адди (интермедиат (hashlib.sha256 ( «что-то маленькое и легко запомнить, но трудно угадать»). hexdigest (), 16))
secp256k1curve = ecdsa.ellipticcurve.CurveFp (115792089237316195423570985008687907853269984665640564039457584007908834671663,0,7)
secp256k1point = ecdsa.ellipticcurve.Point (secp256k1curve, 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8,0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141)
secp256k1 = ecdsa.curves.Curve ( 'secp256k1', secp256k1curve, secp256k1point, (1,3,132,0,10))
# --------------------------------------
импорт binascii, hashlib
Защиту Адди (рк):
ПКО = ecdsa.SigningKey.from_secret_exponent (рк, secp256k1)
Публичный = binascii.hexlify (pko.get_verifying_key (). to_string ())
pubkey2 = hashlib.sha256 (binascii.unhexlify ( '04' + Публичных)). hexdigest ()
pubkey3 = hashlib.new ( 'ripemd160', binascii.unhexlify (pubkey2)). hexdigest ()
pubkey4 = hashlib.sha256 (binascii.unhexlify ( '00' + pubkey3)). hexdigest ()
pubkey5 = hashlib.sha256 (binascii.unhexlify (pubkey4)). hexdigest ()
pubkey6 = pubkey3 + pubkey5 [8]
pubnum = INT (pubkey6,16)
pubnumlist = []
в то время как pubnum = 0: pubnumlist.append (pubnum% 58); pubnum / = 58
адрес = «»
для л в [ «123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz» [х] для й в pubnumlist]:
адрес = L + адрес
возвращение «1» + адрес
печать Адди (0x18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725)
печать Адди (интермедиат (hashlib.sha256 ( «что-то маленькое и легко запомнить, но трудно угадать»). hexdigest (), 16))
ссылка:
Был бы рад предоставить небольшую награду.
благодаря