sha256 возвращает странный хэш из 44 символов (а не 64 как обычно) - PullRequest
1 голос
/ 02 мая 2019

Я пытаюсь использовать встроенную функцию " sha256 " в моем приложении Waves dApp.https://docs.wavesplatform.com/en/ride/built-in-functions.html

'DataEntry ("sha256_kotobytesto64", toBase64String ( sha256 ( toBytes ("Сообщение в хэш"))))'

Но похоже, что результат этой функции не совпадает с основными реализациями sha256 с открытым исходным кодом (https://www.xorbin.com/tools/sha256-hash-calculator):

Текст : сообщение в хэш

RIDE : 8apFsPX2cDRo + bm8K5h01PprABoXDQ8TKqWibQDQx + U =

Стандарт : f1aa45b0f5f6703468f9b **

Ответы [ 2 ]

2 голосов
/ 02 мая 2019

Это одно и то же значение, закодированное по-разному.Результат "RIDE" находится в base-64, а результат "Standart [sic]" в шестнадцатеричном (base-16).

Вот код Python для преобразования из одного в другое:

>>> import base64
>>> import binascii
>>> binascii.hexlify(base64.b64decode('8apFsPX2cDRo+bm8K5h01PprABoXDQ8TKqWibQDQx+U='))
b'f1aa45b0f5f6703468f9b9bc2b9874d4fa6b001a170d0f132aa5a26d00d0c7e5'
1 голос
/ 06 мая 2019

base-16 будет поддерживаться в ближайшем будущем

Я использовал немного другой подход с wave-crypto lib

base58encode ( sha256 ( stringToUint8Array (" string "))) со стороны клиента

DataEntry ("key_string", toBase58String ( sha256 ( toBytes ("строка"))))

Это поможет с любыми умными контрактами на основе фиксации в RIDE для dApps

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...