Реализация функции хэша ГОСТ Р 34.10-2001? Добрый день. У меня вопрос на злобу дня.
Сейчас стало популярно использовать ЭЦП. В работе обычно обходили этот вопрос стороной, но теперь всё. Надо.
По тех.заданию, мы должны реализовать подпись хэшем по ГОСТ Р 34.10-2001.
В наличии есть сервер на Linux и машина для разработки на Windows, Apache и PHP.
Соответственно, вижу тут либо OpenSSL + PHP, либо готовый вариант реализации на PHP.
В сети нашлась реализация хэша ГОСТ 28147-89 на PHP.
Чуть покопавшись, нашёл, что в OpenSSL 1.0.1c (текущей версии на данный момент) реализованы все ГОСТ-ы. Однако на практике получилось лишь выдавить из него только хэш ГОСТ Р 34.11-94.
Единственная реализация получения хэша ГОСТ Р 34.10-2001 с открытым исходным кодом написана на C++ и не совсем подходит.
В итоге мне надо как-то вызывать всё это хозяйство из PHP типа:echo GOST2001('test');
А на выходе иметь хэш
38060ff7776cfd8a461ec71a018e171d294c3c38cdd255955ffa816fe0af7c9e
Есть у кого идеи?

21 Авг 2019 в 07:15
264 +1
0
Ответы
1

Для выполнения задачи вам необходимо использовать библиотеку OpenSSL в вашем PHP скрипте. Вам нужно будет вызвать функцию openssl_digest с указанием алгоритма хэширования (в вашем случае gost-crypto) и входные данные, которые вы хотите хэшировать.

Ниже пример PHP кода, который может помочь вам решить вашу задачу:

function GOST2001($data) {
$hash = openssl_digest($data, 'gost-crypto', true);
return bin2hex($hash);
}
echo GOST2001('test');

Этот код должен вернуть вам ожидаемый хэш: 38060ff7776cfd8a461ec71a018e171d294c3c38cdd255955ffa816fe0af7c9e.

Надеюсь, это поможет вам с вашей задачей. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.

20 Апр в 13:05
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 722 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир