2016-04-20 5 views
0

Я реализую онлайн-систему оплаты: Paybox.SHA1 с нестандартными символами

У меня есть Автоматический ответ (между серверами) и ответ (прилагаются к моему клиенту, когда он возвращается на мой сайт.

Все хорошо для подписи, которая является SHA1 исключением. На стороне Автоматического ответа у меня есть действительный знак:

ahkjqBWxsi2rMXWpQr9LaQFelTIGJ93pKfGt2E6lT1sIKABsNanexC0gZvt5Z8ShgQXUsGBS10QVPzUxmYDhWpuDKIiHDZ5i9mLm2UGz8LOJeGkIlikuXOCC3ny 

Однако с клиентом (я для этого теста), у меня есть:

ah8R%2F2mvvpc8Jo016XyO7WZbqmQktb%2BShME6A0X3hwCNWkkGXb1YI9wIS7RSCK1IJKotbYni8BxBNoHTKcLxdA9nOQPcQSD%2FUM3%2BdiptrnTuLZ1jP9bIDCvDtSav7WG509gw5PbEztpl5lOZlnIFuCMzC3Ps%2B2Rt%2FO6PSZfHgvA%3D 

Я не underst и:

1) Почему они отличаются друг от друга.

2) Почему второго есть символы «%», который не может быть выход из SHA1

Я думал о другой кодировке, но ничего до сих пор, любая идея?

Благодаря

ответ

0

%2F и %2B являются URL закодированных символов; / и + соответственно.

Возможно, вы увидите их, потому что они могут появляться в кодировке Base64, и это то, что у вас есть (несмотря на их отсутствие в первом примере), учитывая, что вы не можете представлять сырой SHA1-хэш в виде строки.

Во многих сценариях вы не можете использовать HTTP для отправки строки, содержащей эти символы в их исходной форме, поскольку они имеют особое значение, см. Passing base64 encoded strings in URL.

Предполагая, что кодирование/декодирование функционирования и код SHA1 являются причиной разницы в двух хэшах, поскольку входные данные различны.

+0

Проблема в том, что эти две строки должны быть одинаковыми, метод, в котором они закодированы, и данные, используемые для кодирования, одинаковы в соответствии с документацией ... – Faquarl

 Смежные вопросы

  • Нет связанных вопросов^_^