当前位置: 首页 > wzjs >正文

网站开发是前端还是后台公众号软文推广

网站开发是前端还是后台,公众号软文推广,广州做网站公司电话,西安有哪些做网站建设的公司好👻前言 我在使用rawDataHex和privateKeyHex进行签名的时候,是可以正常签名的,但是一广播就失败,无法上链,以下是我签名的方法 /// Tron签名函数,返回 r s v 的 65字节签名String signTronTx(Uint8List …

👻前言

我在使用rawDataHex和privateKeyHex进行签名的时候,是可以正常签名的,但是一广播就失败,无法上链,以下是我签名的方法

/// Tron签名函数,返回 r + s + v 的 65字节签名String signTronTx(Uint8List rawData, String privateKeyHex) {// 1. SHA256 哈希final hash = sha256.convert(rawData).bytes;// 2. 私钥 hex -> bytesfinal privateKeyBytes = web3.hexToBytes(privateKeyHex);// 3. 签名final sig = web3.sign(Uint8List.fromList(hash), privateKeyBytes);// 4. 拼接 r(32) + s(32) + v(1)final r = sig.r.toBytesPadded(32);// final r = bigIntToBytes(sig.r, 32);// final s = bigIntToBytes(sig.s, 32);final s = sig.s.toBytesPadded(32);final v = Uint8List.fromList([sig.v]);final sigList = Uint8List.fromList([...r, ...s, ...v]);return hex.encode(sigList);}

后来查询了大量文档才知道,我这个是r + s + v格式的字节签名,能上链的签名是v + r + s 格式的 65 字节签名,所以导致失败。

🧠 背景知识:椭圆曲线签名(ECDSA)

在 ECDSA(用于 Tron、Ethereum 等链)中,签名的结构是:

r(32字节) + s(32字节) + v(1字节)

注意:但是这个顺序并不是所有链都一样,不同链对签名的顺序有细微要求。

✅正确格式:v + r + s

Tron 的签名顺序是:

[1 byte v] + [32 byte r] + [32 byte s] = 65 字节

✏️ 修改 signTronTx 函数

String signTronTx(Uint8List rawData, String privateKeyHex) {// 1. SHA256 哈希final hash = sha256.convert(rawData).bytes;// 2. 私钥 hex -> bytesfinal privateKeyBytes = web3.hexToBytes(privateKeyHex);// 3. 签名final sig = web3.sign(Uint8List.fromList(hash), privateKeyBytes);// 4. 拼接成 [v, r, s]final r = sig.r.toBytesPadded(32);final s = sig.s.toBytesPadded(32);final v = Uint8List.fromList([sig.v]); // 注意,这里是 1 字节// ✅ 顺序改成 v + r + sfinal sigList = Uint8List.fromList([...v, ...r, ...s]);return hex.encode(sigList);
}

🧪 为什么 Tron 使用 v + r + s?

这是 Tron 在其 Protobuf 结构 Transaction.raw_data.contract.parameter 中对签名的要求,确保节点验证签名时能正确地解析和恢复公钥。

不同链对 v 的使用方式略有不同:

v的位置v的值
Ethereum最后(r+s+v)27/28 或 0/1
Tron最前(v+r+s)27/28

📌 总结

项目正确方式错误方式
签名顺序✅ v + r + s❌ r + s + v
为什么顺序重要?Tron 验签是按这个顺序解析的错序会导致签名无效
如何修复?用 Uint8List.fromList([…v, …r, …s]) 拼接-
v 是否要加 27/28?通常要,如果是 0/1 就加 27否则恢复公钥会失败
http://www.dtcms.com/wzjs/500830.html

相关文章:

  • 十堰微网站建设seo外包顾问
  • 英文网站建设600深圳百度竞价托管公司
  • 住房城乡建设委门户网站开鲁网站seo转接
  • 网站建设app开发合同范本怎么制作网页教程
  • 永州市建设工程质量安全监督站官方网站青岛网络seo公司
  • 上海企业信息查询系统天津seo推广服务
  • 网站自己做余额充值自动扣款b站不收费网站
  • 查询做导员的网站站长之家素材网站
  • 网站原型设计和版式设计windows优化大师官网
  • 周到的做pc端网站关键词长尾词优化
  • 服务器windos做网站百度网盘官网登录入口
  • 教做家常菜的网站网络营销推广的方法有哪些
  • 做推送的网站除了秀米还有揭阳百度seo公司
  • 苏州网站建设功能互动营销用在哪些推广上面
  • 怎么检测网站是否安全百度开户流程
  • 西乡做网站多少钱网络推广运营主要做什么
  • 男女生做内个的网站什么是sem
  • 网站建设互联seo搜索排名优化
  • 网站建设与规划心得体会中国最新消息新闻
  • 重庆做网站公司排名cilimao磁力猫搜索引擎
  • 优惠券个人网站怎么做简单网页制作成品免费
  • 企业网站建设框架图个人如何注册网址
  • 中国和城乡建设部网站首页百度关键词挖掘工具
  • 软件开发工具排行关键词搜索优化
  • 网站建设的难处最新国际新闻10条
  • 网站建设功能文案本周国内新闻
  • 网站建设公式新闻头条最新消息30字
  • 连云港企业做网站四平网络推广
  • 网站后台登入不了出现验证码错误网站媒体推广
  • 百度app站外seo是什么