@alginigor

Как получить такую же сигнатуру SHA1 на PHP, как на Ruby?

Добрый день!
Есть пример на Ruby:
require 'digest/sha1'
secret_key = '9fff8c602b08b00323567be0001480f6'
data = "{\"order_id\": \"FACTPRECHR152632\", \"amount\": \"8300.00\"}"
SIGNATURE = Digest::SHA1.hexdigest(data + secret_key)


Результатом шифрования в примере выше будет являться строка "cbfb21630cd585f59c3a50fc3365d8c26b97cd4e".

Не получается создать такую же сигнатуру на PHP. Предположительно, всё дело в кодировке. Поиск решения не дал результатов. Примеров проверено множество.
Есть непонимание в работе с шифрованием и кодировками.
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
iMedved2009
@iMedved2009
Не люблю людей
echo hash('sha1', "{\"order_id\": \"FACTPRECHR152632\", \"amount\": \"8300.00\"}".'9fff8c602b08b00323567be0001480f6');

cbfb21630cd585f59c3a50fc3365d8c26b97cd4e

https://phpize.online/sql/mysql57/undefined/php/ph...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@mayton2019
Bigdata Engineer
Алгоритм SHA1 везде каноничен. Но лажать можно было на преобразованиях строки в байтовый массив. (SHA1 применяется не к строкам а к байтовым массивам. Есть варианты - рассматривать строку как ASCII, как UTF-8 или как национальную однобайтную например win1251.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы