从 SS58 地址获取 Public 密钥

Get Public key from SS58 Address

根据The Subkey Tool。我们可以使用 subkey generate 生成一个 pub/private 密钥,如下所示:

$ subkey generate
Secret phrase `cement drum say almost secret series daughter eager ceiling fetch about duck` is account:
  Secret seed:      0xb84c6858ca5f331a703203e853d3537eac0a3d4b54838dc69d8e6d395ab4ec6f
  Public key (hex): 0x5075808dbd0eb02828a525c6332596f0e95c3d0b9ecfede376195ca95bca415b
  Account ID:       0x5075808dbd0eb02828a525c6332596f0e95c3d0b9ecfede376195ca95bca415b
  SS58 Address:     5DtCbNMGwhnP5wJ25Zv59wc5aj5uo3wYdr8536qSRxbvmLdK

我的问题:

如何从 SS58 Address 得到 Public key?在这个例子中,是否有可能从 5DtCbNMGwhnP5wJ25Zv59wc5aj5uo3wYdr8536qSRxbvmLdK?

得到 0x5075808dbd0eb02828a525c6332596f0e95c3d0b9ecfede376195ca95bca415b

您可以使用 subkey inspect <ss58> 来实现。

如果你想使用 polkadotjs 来做到这一点,你可以执行以下操作

const { decodeAddress } = require('@polkadot/util-crypto');
const { u8aToHex } = require('@polkadot/util');
const publicKey = decodeAddress('5DSaSznmKRjt9Lvg4478V54UU8kdNyZKSQM8brSiczFR1S1H');
const hexPublicKey = u8aToHex(publicKey);
console.log(hexPublicKey);