sha256返回奇怪的44个符号的哈希值(不是通常的64个)

时间:2019-05-02 09:15:26

标签: blockchain smartcontracts wavesplatform ride

我正在尝试在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

如何解决?

2 个答案:

答案 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中的任何基于提交-发布的智能合约提供帮助