Я выполняю действия, чтобы вызвать конечную точку PSD2, закодировать сообщение в base64, затем получить SHA256, чтобы получить из него хэш и получить base64 хэша. Я использую те же значения примеров, чтобы проверить, правильно ли я делаю. Они также предоставляют веб-сайт с библиотекой js для проверки результата.
https://imgur.com/vsaTbvX
Ввод:
ewogICJpbnN0cnVjdGVkQW1vdW50IiA6IHsKICAgICJjdXJyZW5jeSIgOiAiRVVSIiwKICAgICJhbW91bnQiIDogIjE2LjAwIgogIH0sCiAgImRlYnRvckFjY291bnQiIDogewogICAgImliYW4iIDogIkVTNTE0MDAwMDAwMTA1MDAwMDAwMDAwMSIsCiAgICAiY3VycmVuY3kiIDogIkVVUiIKICB9LAogICJjcmVkaXRvck5hbWUiIDogIkNyZWQuIE5hbWUiLAogICJjcmVkaXRvckFjY291bnQiIDogewogICAgImliYW4iIDogIkVTNjYyMTAwMDQxODQwMTIzNDU2Nzg5MSIsCiAgICAiY3VycmVuY3kiIDogIkVVUiIKICB9LAogICJjcmVkaXRvckFkZHJlc3MiIDogewogICAgInN0cmVldCIgOiAiRWplbXBsbyBkZSBjYWxsZSIsCiAgICAiYnVpbGRpbmdOdW1iZXIiIDogIjE1IiwKICAgICJjaXR5IiA6ICJDb3Jkb2JhIiwKICAgICJwb3N0YWxDb2RlIiA6ICIxNDEwMCIsCiAgICAiY291bnRyeSIgOiAiRVMiCiAgfSwKICAicmVtaXR0YW5jZUluZm9ybWF0aW9uVW5zdHJ1Y3R1cmVkIiA6ICJQYWdvIiwKICAiY2hhcmdlQmVhcmVyIiA6ICJDUkVEIgp9
Ожидаемый результат:
pfHPQFso5E7SlQfg9kSVhZuod4k9KnFFEtFs472L5WI=
Что я делаю:
import base64
import hashlib
# get_input returns the input base64 in bytes
result = base64.b64encode(hashlib.sha256(get_input()).digest())
В этом случае результат будет:
b'JRtx3taNOfx00oj2xuyoAxocxfJnL/wEXLYf9+t9jCk='
Вместо ожидаемого результата.
Этот результат совпадает с результатом того, что страница JS изменила тип ввода с base64 на текст , поэтому я предполагаю, что ввод правильный. Но с hashlib нет опций типа ввода. Итак, мой вопрос: что я должен сделать, чтобы получить ожидаемый результат с этим вводом в python?