我想计算自由吨-实体契约中字符串的sha256,方法是将字符串存储在TvmBuilder中,然后将其作为TvmSlice传递给sha256(),但是结果不正确(它与shell中由sha256sum计算的字符串不匹配)。知道为什么吗?
TvmBuilder是否添加了在片中传递的一些位呢?
发布于 2021-06-04 08:47:51
是的,据我所知,tvm生成器是TL-B方案序列化器。
sha256()函数在中只接受一个TvmBuilder作为输入,您可以计算原始字符串的散列。
散列任意字符串正在散列它的BOC,因为BOC是tvm能够理解的唯一结构。
我想你可能会想用这个字符串来建造中银。构建器构建单元格,单元格布局由切片+参考文献组成。其结果是将切片与refs混合而成的树状结构,在块链状态下解析。
您的方法应该适用于小字符串,同时也适用于整个块链状态。这是tvm理解数据的唯一方法
所以字符串的散列是一个单元格的散列,它有底层单元格的证明。
这就是我现在理解的方式,希望这会有所帮助。
如果字符串小于127字节,则可以在单个单元格中传递字节和散列字节。
tg @freeton_smartcontracts在这里聪明的SmC家伙可以澄清,因为我是自学成才,并不真正掌握SmC pro
也许这个或铁锈核心sdk可以帮助您。
https://stackoverflow.com/questions/67829037
复制相似问题