You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将十六进制Hedera账户ID别名转为纯字符格式?Hedera SDK是否支持?

将十六进制Hedera账户ID别名转换为Base58字符格式

Hedera官方SDK已经内置了实现该转换的工具函数,无需手动编码Base58逻辑。本质上,你要转换的是DER编码公钥的十六进制字符串到账户别名的Base58格式,以下是主流SDK的具体实现方式:

JavaScript/TypeScript SDK(@hashgraph/sdk)

import { AccountId, PublicKey } from "@hashgraph/sdk";

// 提取十六进制别名部分(去掉0.0.前缀)
const hexAlias = "302a300506032b657003210030a028ee7fd716c438de818a8831ed2235d0f85e430ab036dbfac173eb50aef9";

// 解析为公钥并转换为账户别名ID
const publicKey = PublicKey.fromBytes(Buffer.from(hexAlias, "hex"));
const accountId = AccountId.fromPublicKey(publicKey);

// 输出目标格式
console.log(accountId.toString());
// 结果:0.0.HIQQEXWKW53RKN4W6XXC4Q232SYNZ3SZANVZZSUME5B5PRGXL663UAQA

Java SDK(com.hedera.hashgraph:sdk)

import com.hedera.hashgraph.sdk.AccountId;
import com.hedera.hashgraph.sdk.PublicKey;
import java.util.HexFormat;

public class AccountAliasConverter {
    public static void main(String[] args) {
        String hexAlias = "302a300506032b657003210030a028ee7fd716c438de818a8831ed2235d0f85e430ab036dbfac173eb50aef9";
        byte[] publicKeyBytes = HexFormat.of().parseHex(hexAlias);
        PublicKey publicKey = PublicKey.fromBytes(publicKeyBytes);
        AccountId accountId = AccountId.fromPublicKey(publicKey);
        
        System.out.println(accountId.toString());
        // 结果:0.0.HIQQEXWKW53RKN4W6XXC4Q232SYNZ3SZANVZZSUME5B5PRGXL663UAQA
    }
}

Go SDK(github.com/hashgraph/hedera-sdk-go/v2)

package main

import (
    "encoding/hex"
    "fmt"
    "github.com/hashgraph/hedera-sdk-go/v2"
)

func main() {
    hexAlias := "302a300506032b657003210030a028ee7fd716c438de818a8831ed2235d0f85e430ab036dbfac173eb50aef9"
    publicKeyBytes, _ := hex.DecodeString(hexAlias)
    publicKey, _ := hedera.PublicKeyFromBytes(publicKeyBytes)
    accountId := hedera.AccountIDFromPublicKey(publicKey)
    
    fmt.Println(accountId.String())
    // 结果:0.0.HIQQEXWKW53RKN4W6XXC4Q232SYNZ3SZANVZZSUME5B5PRGXL663UAQA
}

补充说明

如果你的输入是完整的0.0.<十六进制字符串>格式,可先通过字符串分割提取出后面的十六进制部分再处理,比如在JavaScript中用hexAlias = fullAccountId.split('.')[2]。

内容的提问来源于stack exchange,提问作者Pathorn Teng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 23:19:53