Поиск по блогу

пятница, 6 марта 2015 г.

Вычисление хэш-суммы по алгоритму ГОСТ Р 34.11-94

Вычисление хэш-суммы по алгоритму SHA-512
Вычисление хэш-суммы по алгоритму MD5
Вычисление хэш-сумм MD, SHA при помощи CAPICOM

Реализации вычисления хэш-суммы по алгоритму ГОСТ 34.11-94.


Что требуется


Так как алгоритм отечественного производства, необходимо установить программные продукты КриптоПро CSP и КриптоПро CADESCOM. После установки программных продуктов КриптоПро будет доступен COM-объект HasheData с ProgID - CAdESCOM.HashedData. Этот объект предоставляет свойства и методы для вычисления хэш-суммы данных.

Реализация

Объект HashedData имеет метод Hash, в который передаются данные для вычисления хэш-суммы. Свойство Value содержит результат вычисления. Напишем функцию, которая принимает строку и возвращает хэш-сумму. Незабываем, что строки в разных кодировках имеют различные хэш-суммы, поэтому строку следует привести к кодировке UTF-8.

// Функция вычисляет хэш-сумму по алгоритму ГОСТ 34.11-94
//
// Параметры
//  Строка  - Строка - исходная строка  .
//
// Возвращаемое значение:
//   Строка   - хэш-сумма в виде 64-х символьной строке в шестнадцатеричном формате.
//
Функция ВычислитьХэшСуммуПоГОСТ_3411(Строка) Экспорт

CADESCOM_HASH_ALGORITHM_CP_GOST_3411 = 100;

HashedData = Новый COMОбъект("CAdESCOM.HashedData");
// Указываем алгоритм хэширования.
HashedData.Algorithm = CADESCOM_HASH_ALGORITHM_CP_GOST_3411;
// Передаем данные, строку кодируем в последовательность байтов UTF-8.
UTF8Encoding = Новый COMОбъект("System.Text.UTF8Encoding");
HashedData.Hash(UTF8Encoding.GetBytes_4(Строка));

// Возвращаем вычисленную хэш-сумму.
Возврат HashedData.Value;

КонецФункции // ВычислитьХэшСуммуПоГОСТ_3411()


Результат работу функции:
Обработка вычисления хэш-суммы ГОСТ 34.11-94
Обработку можно скачать по этой ссылке.

Главный минус данной реализации, это приобретение продуктов компании КриптоПро.

2 комментария:

  1. Анонимный14 июля 2015 г., 22:39

    Здравствуйте. Подскажите, пожалуйста в сем может быть проблема
    установил КриптоПро CADESCOM (версия 2.0.2012) при попытке выполнения получаю ошибку
    Произошла исключительная ситуация (CAdESCOM.HashedData.1): Указан неправильный алгоритм.

    ОтветитьУдалить
    Ответы
    1. Возможно для вашей версии CAdESCOM константа CADESCOM_HASH_ALGORITHM_CP_GOST_3411 имеет другое значение. Уточните значение данной константы. Так же обязательно должен быть установлен КриптоПро CSP.

      Удалить