|
PHP: Вопрос по хешированию (подписи)
|
|||
---|---|---|---|
#18+
Мне нужно сгенерировать подпись SHA256 по ключу. Нужна альтернатива следующей процедуры: Код: plaintext
Код: php 1.
Но результат (подпись) не совпадает. Видимо потому что третий параметр функции (private.pem) воспринимается как стока, а не как закрытый ключ. Не подскажите, как на PHP подписать данные аналогично первому выражению? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 01:23 |
|
PHP: Вопрос по хешированию (подписи)
|
|||
---|---|---|---|
#18+
И сам себе отвечаю. Сделал такую функцию: Код: php 1. 2. 3. 4. 5. 6. 7.
Подписывает, как мне требуется. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 01:34 |
|
PHP: Вопрос по хешированию (подписи)
|
|||
---|---|---|---|
#18+
Не подскажите то же самое, но для Perl? В Perl есть модуль Digest::SHA, в нем есть функция hmac_sha256_base64. Но ее результат не совпадает с тем, что выдает openssl, он гораздо короче. Видимо это хеш, а не подпись. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2019, 13:54 |
|
PHP: Вопрос по хешированию (подписи)
|
|||
---|---|---|---|
#18+
hmac - это хеш ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2019, 15:01 |
|
PHP: Вопрос по хешированию (подписи)
|
|||
---|---|---|---|
#18+
Да, напутал. Сделал такую функцию: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Ничего не напутал? Модуль на CPAN документирован очень невнятно. Вроде бы все правильно, но почему-то подпись, которую я получаю, не совпадает с эталонной. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2019, 15:05 |
|
PHP: Вопрос по хешированию (подписи)
|
|||
---|---|---|---|
#18+
Вот код на PHP, который все делает правильно: Код: php 1. 2. 3. 4. 5. 6. 7. 8.
Он выдает такой результат: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Вот аналогичный код на Perl: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Результат почему-то немного отличается: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Из-за чего получается разница? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2019, 18:25 |
|
PHP: Вопрос по хешированию (подписи)
|
|||
---|---|---|---|
#18+
Кстати, дифф выглядит довольно необычно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2019, 18:31 |
|
PHP: Вопрос по хешированию (подписи)
|
|||
---|---|---|---|
#18+
Похоже вся разница в том, что во втором варианте каждые 76 символов добавляется лишний 0. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2019, 18:33 |
|
PHP: Вопрос по хешированию (подписи)
|
|||
---|---|---|---|
#18+
Все, вопрос решился, проблема была не в крипто-функциях, а в кодировании в base64. У функции encode_base64 второй аргумент — это не количество символов в строке, а символ, добавляемый в конце строки. И значение 0 интерпретировалось как "0". ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2019, 18:37 |
|
|
start [/forum/topic.php?fid=23&fpage=15&tid=1459919]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 260ms |
total: | 387ms |
0 / 0 |