【发布时间】:2021-08-22 07:28:15
【问题描述】:
我有一个格式如下的私钥。私钥仅用于测试。 xprvA3bdZ5Dz3QFmyC6Y7tKeJahknnUZPgpw2Zhf7LNmZ1uLfJo2b557DpPBeBVW6Etbggpnd6VRUEWvKUj3NnBuU1MeWH8CY7eVTQ2yvZUXYSq
这很可能是以太坊格式。我需要将其转换为 base64 格式,以便在签名中使用它。 (filecoin交易需要base64编码格式的私钥)
发送 Filecoin 交易我需要使用这个方法:
transactionSignLotus(unSignedMessage, privatekey)
## transactionSignLotus (support Lotus schema)
Sign a transaction and return a JSON string of the signed transaction which can then be sent to a lotus node.
Arguments:
* **transaction**: a filecoin transaction;
* **privatekey**: a private key (hexstring or buffer);
我的私钥不适用于此方法。我想我需要转换成base64,但是我用了大部分的方式将私钥转换成base64格式,都没有得到结果。
注意:当我说 base64 时,我的意思是这样的:
px2g1zwEd1+EMfj4nX1oh0roouBGHhPo7QUNkPBHk1Q=
【问题讨论】:
-
你能解释一下“以太坊格式”是什么意思吗?
-
transactionSignLotus 需要这种格式 * privatekey:私钥(十六进制字符串或缓冲区);
-
@veedata 私钥由 ethereun 生成
-
@Topaco 密钥应该是 * privatekey:私钥(十六进制字符串或缓冲区);
-
实际上这是a Bitcoin format 由以太坊@Topaco 共享:它使用base58check——base58 和4 字节截断散列,用于在编码前添加冗余并在解码后删除。 (比特币的 base58check 还包括对前导零的调整,但 xprv 和 xpub 值没有前导零,因此可以忽略。)以太坊和比特币中的地址都是从公钥而不是私钥派生的。
标签: python node.js reactjs cryptography base64