首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Everscale稳健智能契约中字符串的sha256不正确结果

Everscale稳健智能契约中字符串的sha256不正确结果
EN

Stack Overflow用户
提问于 2021-06-03 21:47:36
回答 1查看 171关注 0票数 1

我想计算自由吨-实体契约中字符串的sha256,方法是将字符串存储在TvmBuilder中,然后将其作为TvmSlice传递给sha256(),但是结果不正确(它与shell中由sha256sum计算的字符串不匹配)。知道为什么吗?

TvmBuilder是否添加了在片中传递的一些位呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-04 08:47:51

是的,据我所知,tvm生成器是TL-B方案序列化器。

sha256()函数在中只接受一个TvmBuilder作为输入,您可以计算原始字符串的散列。

散列任意字符串正在散列它的BOC,因为BOC是tvm能够理解的唯一结构。

我想你可能会想用这个字符串来建造中银。构建器构建单元格,单元格布局由切片+参考文献组成。其结果是将切片与refs混合而成的树状结构,在块链状态下解析。

您的方法应该适用于小字符串,同时也适用于整个块链状态。这是tvm理解数据的唯一方法

所以字符串的散列是一个单元格的散列,它有底层单元格的证明。

这就是我现在理解的方式,希望这会有所帮助。

如果字符串小于127字节,则可以在单个单元格中传递字节和散列字节。

tg @freeton_smartcontracts在这里聪明的SmC家伙可以澄清,因为我是自学成才,并不真正掌握SmC pro

https://github.com/move-ton/ton-client-py/blob/b06b333e6f5582aa1888121cca80424b614e092c/tonclient/abi.py#L49

也许这个或铁锈核心sdk可以帮助您。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67829037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档