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

如何对r_hash进行编码以通过LND REST API校验支付发票

两个r_hash没有不一致,只是同一个32字节原始哈希值的不同编码形式:

  • 命令行CLI返回的是十六进制(HEX)编码字符串,每个原始字节对应2个十六进制字符
  • HTTP API返回的是标准Base64编码字符串,直接对32字节原始值做Base64编码

按照如下方法即可实现两种格式的双向转换:

Base64(API返回值)转HEX(CLI返回值)

Shell命令实现

echo -n "ud8NgqDTgCUri3sqb8D85YaRsnCtnQzY56iLwGWUXA4=" | base64 -d | xxd -p -c 32

执行后输出即为CLI查询得到的b9df0d82a0d380252b8b7b2a6fc0fce58691b270ad9d0cd8e7a88bc065945c0e。

Python实现

import base64
import binascii

base64_hash = "ud8NgqDTgCUri3sqb8D85YaRsnCtnQzY56iLwGWUXA4="
hex_hash = binascii.hexlify(base64.b64decode(base64_hash)).decode()
print(hex_hash)

HEX(CLI返回值)转Base64(API调用所需格式)

如果需要用CLI拿到的HEX格式r_hash调用LND HTTP API,需先转成标准Base64格式:

Shell命令实现

echo -n "b9df0d82a0d380252b8b7b2a6fc0fce58691b270ad9d0cd8e7a88bc065945c0e" | xxd -r -p | base64 -w 0

执行后输出即为API兼容的Base64格式ud8NgqDTgCUri3sqb8D85YaRsnCtnQzY56iLwGWUXA4=。

Python实现

import base64
import binascii

hex_hash = "b9df0d82a0d380252b8b7b2a6fc0fce58691b270ad9d0cd8e7a88bc065945c0e"
base64_hash = base64.b64encode(binascii.unhexlify(hex_hash)).decode()
print(base64_hash)

注意事项

部分LND API端点要求传入URL安全的Base64格式,若使用标准Base64报错,可做如下替换:

  • 把+替换为-
  • 把/替换为_
  • 去掉末尾的=补位字符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:57:00