Возникла необходимость зашифровать данные 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.