Здраствуйте.
Имеется код на JS (с библиотекой crypto-js):
let binPubKey = CryptoJS.enc.Hex.parse(publicKey);
let hash = CryptoJS.SHA3(binPubKey, {
outputLength: 256
});
console.log(hash.toString());
Соответственно, в конце я получаю дайджест SHA3-256.
Попытка повторить аналогичную функцию на Пайтон - приводит к тому что я получаю совсем другой хеш.
sha3_hash = hashlib.sha3_256()
sha3_hash.update(binascii.unhexlify(pubkey))
print(sha3_hash.hexdigest())
Входящая строка: 48656c6c6f20576f726c6421
И вот результат:
python: d0e47486bbf4c16acac26f8b653592973c1362909f90262877089f9c8a4536af
js: 3ea2f1d0abf3fc66cf29eebb70cbd4e7fe762ef8a09bcc06c8edf641230afec0
Я так понимаю, вся магия в CryptoJS.enc.Hex.parse(publicKey)?
Или может кто-то знает как правильно использовать аналог для Пайтона?