Вычисление хэш-суммы по алгоритму MD5
Вычисление хэш-сумм MD, SHA при помощи CAPICOM
Вычисление хэш-суммы по алгоритму ГОСТ Р 34.11-94
Вычисление хэш-суммы по алгоритму SHA-512
Как вычислять хэш-сумму по алгоритму SHA-512 описано в этой статье. SHA-512 применяется для защиты информации и считается довольно устойчивой хэш-функцией. Но не стоит забывать о старом добром MD5, который имеет 128 битную хэш-сумму, выполняется быстрее чем SHA-1, SHA-2 и отлично подходит для создания "отпечатков" большого объема данных.
Минус данного решения - функция будет работать только на семействе операционных систем Windows.
Вычисление хэш-суммы по алгоритму ГОСТ Р 34.11-94
Вычисление хэш-суммы по алгоритму SHA-512
Как вычислять хэш-сумму по алгоритму SHA-512 описано в этой статье. SHA-512 применяется для защиты информации и считается довольно устойчивой хэш-функцией. Но не стоит забывать о старом добром MD5, который имеет 128 битную хэш-сумму, выполняется быстрее чем SHA-1, SHA-2 и отлично подходит для создания "отпечатков" большого объема данных.
Для вычисления хэш-суммы по алгоритму MD5 воспользуемся COM-объектами, нам потребуется объект с ProgID - System.Security.Cryptography.MD5CryptoServiceProvider. Он имеет метод ComputeHash, который возвращает хэш-сумму в виде 16-байтового массива.
Напишем функцию, которая будет вычислять значение хэш-суммы для заданной строки и возвращать его в виде 32-х символьной строки в шестнадцатеричном формате:
// Вычисление хэш-суммы по алгоритму MD5.
//
// Параметры:
// Строка - строка, строка для которой вычисляется хэш-сумма.
//
// Возвращаемое значение:
// Строка - 32-х символьная строка в шестнадцатеричном виде.
//
Функция ВычислитьХешСтрокиПоАлгоритмуMD5(Знач Строка) Экспорт
 Попытка
  
  // Вычисление хэш-суммы.
  UTF8Encoding = Новый COMОбъект("System.Text.UTF8Encoding");
  MD5CryptoServiceProvider = Новый COMОбъект("System.Security.Cryptography.MD5CryptoServiceProvider");
  МассивБайтов = MD5CryptoServiceProvider.ComputeHash_2(UTF8Encoding.GetBytes_4(Строка));
  
  // Преобразование хэш-суммы в строку.
  StringBuilder = Новый COMОбъект("System.Text.StringBuilder");
  Для Каждого Элемент Из МассивБайтов Цикл
   StringBuilder.AppendFormat("{0:x2}", Элемент);
  КонецЦикла;
  
  Возврат StringBuilder.ToString();
  
 Исключение
  ВызватьИсключение "Ошибка вычисления хэш-суммы по алгоритму MD5!
        |Попробуйте установить/обновить "".NET Framework"".";
 КонецПопытки;
КонецФункции // ВычислитьХешСтрокиПоАлгоритмуMD5()
Описание используемых COM-объектов:
System.Security.Cryptography.MD5CryptoServiceProvider
System.Text.UTF8Encoding
System.Text.StringBuilder
Обработку можно скачать по этой ссылке.
System.Security.Cryptography.MD5CryptoServiceProvider
System.Text.UTF8Encoding
System.Text.StringBuilder
![]()  | 
| Пример вычисления хэш-суммы MD5 в 1С | 
Минус данного решения - функция будет работать только на семействе операционных систем Windows.

Комментарии
Отправить комментарий