Ich versuche, ein Python-Skript zu schreiben, das eine neue Brieftasche für diesen Benutzer generieren kann, aber ich muss in der Lage sein, den privaten Schlüssel zu behalten.
Ich habe folgendes befolgt: Stapelüberlaufantwort
und habe diese Ergebnisse erhalten:
import os
from ethereum import utils
key = utils.sha3(os.urandom(4096))
print key
Out[5]: 'L\xf7\x98\x06\xb9\xbe>?
c\x88\xd3\xa7\x05\xdd\xe8AtNe\xf3\xe7Pc\xed\xd8L~\\\xcc\rq\x18'
raw = utils.privtoaddr(key)
print raw
Out[7]:
'n\x98V8\x05\xa1\x05\x9b\x18\xca%\xb3\xed\xd0\xd5\xa9I\xf8\x97\x15'
add = utils.checksum_encode(raw)
print add
Out[9]: '0x6e98563805A1059B18ca25B3edd0d5a949f89715'
Ich konnte also eine Adresse bekommen, aber ich bin mir nicht ganz sicher, was ich hier in den Variablen "Schlüssel" und "Raw" sehe
Os ist Ubuntu 16.4, auf dem Python 2.7.12 ausgeführt wird.
Beachten Sie, dass dies ein kleines persönliches Projekt zum Lernen ist, daher stören mich "Sicherheitsprobleme" nicht wirklich
Bearbeiten: Ich konnte damit erstellen, was ich brauchte, ich werde diese Frage offen lassen, da ich immer noch an meinem ersten Weg interessiert bin. https://github.com/vkobel/ethereum-generate-wallet
Es sieht so aus, als wären Sie in Python 2. Py2 repräsentiert Bytes in einer latin-1-codierten Zeichenfolge. Manchmal sehen Sie ASCII-Zeichen, manchmal sehen Sie so etwas wie \x18
das Byte 00011000, auch bekannt als 18 in Hex oder 24 als Ganzzahl. Ein privater Schlüssel ist nur eine Reihe von Bytes hintereinander.
raw
ist die binäre Darstellung der Adresse. Die Adresse in addr
ist die Hex-String-Darstellung (mit in EIP-55 definierter Prüfsumme ). Beachten Sie die Endung der Adresse: , was in 15
entspricht .\x15
addr
Sie könnten auch an web3.py v4-Funktionen für die Verwaltung privater Schlüssel interessiert sein: http://web3py.readthedocs.io/en/latest/web3.eth.account.html
Es sieht aus wie:
>>> from web3.auto import w3
>>> acct = w3.eth.account.create('KEYSMASH FJAFJKLDSKF7JKFDJ 1530')
>>> acct.address
'0x5ce9454909639D2D17A3F753ce7d93fa0b9aB12E'
>>> acct.privateKey
b"\xb2\\}\xb3\x1f\xee\xd9\x12''\xbf\t9\xdcv\x9a\x96VK-\xe4\xc4rm\x03[6\xec\xf1\xe5\xb3d"
Wenn Sie die Hex-Codierung des privaten Schlüssels sehen möchten, können Sie Folgendes verwenden:
>>> acct.privateKey.hex()
'b25c7db31feed9122727bf0939dc769a96564b2de4c4726d035b36ecf1e5b364'
Ron Serruya
Schnitzer