Wie erzeugt man einen Hash aus einem sehr langen Seed auf ether.camp?

Wenn der Seed auf ether.camp mehr als 64 Zeichen lang ist, bekomme ich:

[Error] Error: Invalid hex string
hexWrite (eth-utils.js:17402)
write (eth-utils.js:17477)
fromString (eth-utils.js:17010)
Buffer (eth-utils.js:16980)
toAddress (eth-utils.js:12946)
setPrivateKey (rlpBuilder.js:100)
setSeedPhrase (rlpBuilder.js:95)
setSecretKey (rlpBuilder.js:108)
(anonymous function) (balanceTxDialog.js:76)
dispatch (jquery.min.js:3:8555)
handle (jquery.min.js:3:5258)

Ich habe versucht, mit Seed mit Web Inspector zu senden, der sagt:

// must be an even number of digits
var strLen = string.length
if (strLen % 2 !== 0) 
   throw new Error('Invalid hex string')
if (length > strLen / 2) {
    length = strLen / 2
}
for (var i = 0; i < length; i++) {
    var parsed = parseInt(string.substr(i * 2, 2), 16)
    if (isNaN(parsed)) 
        throw new Error('Invalid hex string')
    buf[offset + i] = parsed
}
return i

Der Fehler ist sowohl in Safari als auch in Firefox dauerhaft.

Darüber hinaus hängt diese Grenze davon ab, welche Zeichen Sie in das Überweisungsformular eingeben, und kann niedriger sein (z. B. für !@#$%^^nur 63).

Ich habe es mit einem anderen Konto mit viel kürzerem Seed <40 Zeichen versucht und alles funktioniert gut.

Meine Frage ist, wie ich aus meinem sehr langen Samen ein Hasch herstellen kann.

Ich habe deine Beiträge aus dem anderen Thread zusammengeführt. Vielen Dank für das Posten einer neuen Frage, damit kann diese einfacher beantwortet werden. Außerdem habe ich etwas formatiert. Verwenden Sie zwei Zeilenumbrüche für neue Absätze und einen Einzug von 4 Leerzeichen für die Codeformatierung.

Antworten (2)

Da die Site keine Zeichenfolgen mit mehr als 64 Zeichen zu akzeptieren scheint, wie Sie sagten, würde ich empfehlen, den Seed manuell mit einem kryptografischen Hash wie SHA256 zu hashen. Dies sollte eine 64-stellige Hex-Zeichenfolge zurückgeben, die Sie dann als Seed verwenden können.

Unter Linux können Sie beispielsweise den sha256sumBefehl verwenden. Es sollte ähnliche Tools auch für andere Betriebssysteme geben

Danke für den Vorschlag. Simple shasum -a 256 file.txt hat nicht funktioniert. Es gibt andere Optionen wie obere/untere Hälfte von sha -a 512, andere Textcodierung usw. Ich habe einige davon ausprobiert, aber kein Glück. Ich erhalte Transaktionen mit seltsamen Absenderadressen.
Sie müssen wirklich genauer sein als "hat nicht funktioniert", wenn Sie Hilfe benötigen. Was ist passiert?
Insbesondere hat die Antwort mein Problem nicht gelöst, da ich bereits einen Seed habe und dieser zu lang ist, um ihn für Transaktionen zu verwenden. Aber ich schätzte den Vorschlag, verschiedene Algorithmen anzuwenden, um den Hash aus meinem Seed zu erzeugen. Ich habe shasum 256.512 ausprobiert ... aber die resultierenden Hashes zeigten nicht auf meine Kontoadresse. Daher hat es nicht funktioniert, den Hash-Algorithmus anzupassen. Es gibt noch einen weiteren Aspekt des Problems. Wenn der Hash für das von ether.camp erstellte Konto verborgen bleibt, wird es schwierig, über die API auf dieses Konto zuzugreifen.

So erhalten Sie einen nützlichen Hash aus Ihrem Seed, auch wenn er zu lang ist. Sie verwenden den Keccak-256-Hashing-Algorithmus mit Ihrem Seed. Der resultierende 32-Byte-Hash (64 Zeichen [0-9a-f]) ist der Hash, den Sie in ether.camp verwenden können, um die Transaktionen zu signieren. Beachten Sie, dass Keccak-256 nicht mit SHA3 identisch ist. Es hat einige Zeit gedauert, es herauszufinden, und die Informationen von https://medium.com/@ConsenSys/are-you-really-using-sha-3-or-old-code-c5df31ad2b0#.i1ztcljlm waren wirklich hilfreich. Sie können npm verwenden, um lokal zu installieren. Es gibt einige Online-Tools, aber verlassen Sie sich nicht auf die Sicherheit Ihres Kontos, wenn Sie Ihren Seed irgendwo in der Wildnis einfügen. Übrigens wäre ein einfaches Online-Tool im ether.camp gut. Vielen Dank für Ihren wertvollen Beitrag.