Как захешировать строку согласно ГОСТ 34.311, чтобы это была строка в base64? Необходимо захешировать requestId (uuid v4) согласно ГОСТ 34.311, чтобы это была строка в base64 длиной 44 символа (32 байта после декодинга) Пример эталонного хеша: MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI= Либы которые находил в нете почему то не возращают 44 символа

26 Янв 2022 в 19:54
166 +1
0
Ответы
1

Для захеширования строки согласно ГОСТ 34.311 и представления ее в формате base64 длиной 44 символа, можно воспользоваться следующим кодом на Python с использованием библиотеки pycryptodome:

from Crypto.Cipher import gost
import base64
import uuid
# Генерируем uuid v4
requestId = str(uuid.uuid4())
# Преобразуем строку requestId в байты
requestId_bytes = requestId.encode('utf-8')
# Создаем объект шифрования для ГОСТ 34.311
cipher = gost.GOST3411.new()
# Хешируем строку requestId
hash_value = cipher.update(requestId_bytes).digest()
# Преобразуем хеш в base64
hash_base64 = base64.b64encode(hash_value).decode('utf-8')
# Печатаем результат
print(hash_base64)

Этот код должен создавать строку хеша длиной 44 символа в формате base64, используя ГОСТ 34.311 для шифрования строки requestId. Пожалуйста, обратите внимание, что реализация ГОСТ 34.311 может отличаться в разных библиотеках, поэтому убедитесь, что используете платформу, поддерживающую соответствующий стандарт.

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