пятница, 1 июня 2012 г.

Использование объектов криптографии CAPICOM в 1С 7.7

Возникла необходимость зашифровать данные XML-файла (используется для импорта данных в 1С), чтобы пользователи не могли его отредактировать. Решили остановиться на CAPICOM. Весь код шифрования/дешифрования занимает несколько строк, надо лишь иметь зарегистрированную в системе библиотеку CAPICOM.dll.

Пример кода в 1С:
Процедура Шифровать()
    CAPI = СоздатьОбъект("CAPICOM.EncryptedData"); // создаем объект
    CAPI.Content = СокрЛП(стр); // шифруемая строка
    CAPI.setsecret("MyPassword"); // генерируем из пароля ключ шифрования
    ЗашифрованнаяСтрока = oCAPI.encrypt(); // Шифруем
    CAPI=0; // освобождаем объект
КонецПроцедуры

Процедура Расшифровать()
    CAPI = СоздатьОбъект("CAPICOM.EncryptedData");
    CAPI.setsecret("MyPassword");
    CAPI.decrypt(стр);
    РасшифрованнаяСтрока = oCAPI.Content;
    CAPI=0;

КонецПроцедуры 

При необходимости использования алгоритма шифрования и длины ключа, отличных от используемых по умолчанию необходимо перед вызовом метода setsecret() установить свойства объекта Algorithm - Name и KeyLength.
Например:
CAPI.Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM_RC4
CAPI.Algorithm.KeyLength = CAPICOM_ENCRYPTION_KEY_LENGTH_MAXIMUM
Список констант возможных алгоритмов см CAPICOM.h
При дешифровке нет необходимости указывать алгоритм и длину ключа, поскольку при шифровании, CAPICOM “укладывает” эти данные в контент.

Кроме шифрования CAPICOM может быть использовано для формирования цифровой подписи, проверки сигнатур, хеширования данных, работы с хранилищами сертификатов.

Скачать CAPICOM 2.0 можно здесь:
http://www.microsoft.com/ru-ru/download/details.aspx?id=25281

(ставить весь пакет необязатально - достаточно распаковать и зарегистрировать DLL)

Установка
1. Скопируйте CAPICOM.dll в системную папку Windows
2. Зарегистрируйте, для этого в папке с установленным CAPICOM.dll в командной строке введите команду:
regsvr32 CAPICOM.dll
CAPICOM 1.0 - может быть использовано в среде Microsoft Windows 95, Microsoft Windows 98, Microsoft Windows ME, Microsoft Windows NT 4.0, Microsoft Windows 2000, Windows XP и Windows .NET Server.
CAPICOM 2.0 - Windows 98, Windows Me, Windows NT 4.0, Windows 2000, Windows XP и Windows .NET Server.
Для обоих CAPICOM 1.0 и CAPICOM 2.0, требуется наличие Microsoft Internet Explorer не младше версии 5.0.

Инструкция, послужившая руководством к действию: http://www.foxclub.ru/sol/solution260.php

Комментариев нет: