Blockchain sha256返回奇怪的44个符号散列(不是通常的64个)

Blockchain sha256返回奇怪的44个符号散列(不是通常的64个),blockchain,smartcontracts,wavesplatform,ride,Blockchain,Smartcontracts,Wavesplatform,Ride,我正在尝试在Waves dApp中使用内置函数“sha256”。 '数据条目(“sha256_kotobytesto64”, TOBASE64字符串(sha256(toBytes(“消息到散列”))' 但是这个函数的结果似乎与主要的开源sha256实现()不同: 文本:要散列的消息 骑乘:8apFsPX2cDRo+bm8K5h01PprABoXDQ8TKqWibQDQx+U= 标准:F1AA45B0F5F6703468F9B9BC2B9874D4FA6B001A170D0F132AA5A26D

我正在尝试在Waves dApp中使用内置函数“sha256”。

'数据条目(“sha256_kotobytesto64”, TOBASE64字符串(sha256(toBytes(“消息到散列”))'

但是这个函数的结果似乎与主要的开源sha256实现()不同:

文本:要散列的消息

骑乘:8apFsPX2cDRo+bm8K5h01PprABoXDQ8TKqWibQDQx+U=

标准:F1AA45B0F5F6703468F9B9BC2B9874D4FA6B001A170D0F132AA5A26D00D00D0C7E5


如何解决它?

它们是相同的值,以不同的方式编码。“骑乘”结果以base-64为单位,“标准件[sic]”结果以十六进制(base-16)为单位

下面是要从一个转换为另一个的Python代码:

导入base64 >>>导入binascii >>>binascii.hexlify(base64.b64解码('8apFsPX2cDRo+bm8K5h01PprABoXDQ8TKqWibQDQx+U=')) b'F1AA45B0F5F6703468F9B9BC2B9874D4FA6B001A170D0F132AA5A26D00D00D0C7E5'
base-16将在不久的将来得到支持

我对waves加密库使用了一种稍微不同的方法

base58encode(sha256(stringToUint8Array(“字符串”)) 从客户端

数据输入(“key_string”,toBase58String(sha256(toBytes(“string”))

这将有助于DAPP中任何基于提交-披露的智能合约