Ich habe derzeit einen generierten öffentlichen 64-Byte-Schlüssel, der aus einer Ethereum-Transaktion wiederhergestellt wurde.
Wie konvertiere ich diesen Schlüssel in einen 33-Byte-komprimierten öffentlichen Schlüssel? Das Problem, das ich habe, scheint ziemlich trivial zu sein, aber ich kann für mein ganzes Leben keine Lösung finden! Ich arbeite derzeit mit Javascript.
Jede Hilfe wäre sehr willkommen.
Es gibt ein Paket, das passende Funktionen enthält, hier ->pubkey/eth-crypto
Sehen:
Der Komprimierungscode ist unten. (Aus dieser Datei kopieren + einfügen.)
var _secp256k = require('secp256k1');
function compress(startsWith04) {
// add trailing 04 if not done before
var testBuffer = Buffer.from(startsWith04, 'hex');
if (testBuffer.length === 64) startsWith04 = '04' + startsWith04;
return (0, _util.uint8ArrayToHex)((0, _secp256k.publicKeyConvert)((0, _util.hexToUnit8Array)(startsWith04), true));
}
Geparden
Richard Horrocks