我正在尝试在Waves dApp中使用内置功能“ sha256 ”。 https://docs.wavesplatform.com/en/ride/built-in-functions.html
'DataEntry(“ sha256_kotobytesto64”, toBase64String( sha256 ( toBytes (“ Message to hash”))))))'
但似乎此功能的结果与主要的开放源代码sha256实现(https://www.xorbin.com/tools/sha256-hash-calculator)不同:
文本:要散列的消息
乘车:8apFsPX2cDRo + bm8K5h01PprABoXDQ8TKqWibQDQx + U =
标准:f1aa45b0f5f6703468f9b9bc2b9874d4fa6b001a170d0f132aa5a26d00d0c7e5
如何解决?
答案 0 :(得分:2)
这些值相同,但编码方式不同。 “ RIDE”结果以64为底,“ Standart [sic]”结果以16进制(以16为底)。
以下是将一个代码转换为另一个代码的Python代码:
>>> import base64
>>> import binascii
>>> binascii.hexlify(base64.b64decode('8apFsPX2cDRo+bm8K5h01PprABoXDQ8TKqWibQDQx+U='))
b'f1aa45b0f5f6703468f9b9bc2b9874d4fa6b001a170d0f132aa5a26d00d0c7e5'
答案 1 :(得分:1)
base-16将在不久的将来得到支持
我对waves-crypto lib使用了一些不同的方法
base58encode ( sha256 ( stringToUint8Array (“ string ”)))) 从客户端
DataEntry(“ key_string”, toBase58String ( sha256 ( toBytes (“ string”))))
它将为RIDE for dApp中的任何基于提交-发布的智能合约提供帮助