Javascript

如何將公鑰(64 字節)轉換為壓縮公鑰(33 字節)

  • March 11, 2021

我目前有一個從乙太坊交易中恢復的生成的 64 字節公鑰。

如何將此密鑰轉換為 33 字節的壓縮公鑰?我遇到的問題似乎很微不足道,但我終生無法找到解決方案!我目前正在使用 javascript。

任何幫助將不勝感激。

這裡有一個包含合適功能的包 ->pubkey/eth-crypto

看:

壓縮程式碼如下。(從這個文件複製+粘貼。)

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));
}

引用自:https://ethereum.stackexchange.com/questions/94514