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

среда, 27 мая 2015 г.

Шифрование строковых данных с помощью CAPICOM.EncryptedData

Шифрование строковых данных. Менеджер криптографии.
Просмотр криптопровайдеров ОС Windows. Инициализация менеджера криптографии.
Шифрование строковых данных с помощью CAPICOM.EnvelopedData

Шифрование с помощью объекта EncryptedData библиотеки CAPICOM является самым простым в реализации, так как в данном случае не требует сертификатов и всего что с ними связано в отличии от объекта EnvelopedData и объекта МенеджераКриптографии языка 1С.

EncryptedData - объект, который предоставляет разработчику свойства и методы для шифрования/дешифрования некой информации с использованием секретного ключа. Этот объект поддерживает следующие симметричные алгоритмы: RC2, RC4, DES, 3DES. Общая схема симметричного шифрования:
1. Симметричное шифрование
Методы объекта:
  • Decrypt - выполняет дешифрование данных, используя секретный ключ;
  • Encrypt - выполняет шифрование данных, с применением секретного ключа;
  • SetSecret - устанавливает секретный ключ.
Свойства объекта:
  • Algorithm - алгоритм. используемый для шифрования/дешифрования;
  • Content - содержит данные для шифрования либо дешифрованные данные.

Функция шифрования:
// Функция выполняет шифрование строковых данных.
//
// Параметры
//  СтроковыеДанные  - Строка - данные для шифрования;
//  СекретныйКлюч  - Строка - ключ, при помощи которого производится дешифрование;
//
// Возвращаемое значение:
//   Строка   - зашифрованный данные закодированные в Base64.
//
Функция ЗашифроватьСтроку(Знач СтроковыеДанные, СекретныйКлюч)

// Константы.
ECAPICOM_ENCRYPTION_KEY_LENGTH_MAXIMUM = 0; // Максимальная длина ключа.
CAPICOM_ENCRYPTION_ALGORITHM_RC4 = 1; // Симметричный алгоритм шифрования RC4.
CAPICOM_ENCODE_BASE64 = 0; // Результат шифрование вернуть в формате Base64.

// Инициализируем объект EncryptedData, задач длину ключа, алгоритм и данные для шифрования.
EncryptedData = Новый COMОбъект("CAPICOM.EncryptedData");
EncryptedData.Algorithm.KeyLength = ECAPICOM_ENCRYPTION_KEY_LENGTH_MAXIMUM;
EncryptedData.Algorithm.Name = CAPICOM_ENCRYPTION_ALGORITHM_RC4;
EncryptedData.Content = СтроковыеДанные; // нет времени кодировать в UTF-8.

// Установим секретный ключ.
EncryptedData.SetSecret(СекретныйКлюч);

// Шифруем данные.
Возврат EncryptedData.Encrypt(CAPICOM_ENCODE_BASE64);

КонецФункции // ЗашифроватьСтроку()


Функция дешифрования:
// Функция выполняет расшифровку строковых данных.
//
// Параметры
//  ЗашифрованныеДанные  - Строка - зашифрованный данные закодированные в Base64;
// СекретныйКлюч  - Строка - ключ, которым производилось шифрование.
//
// Возвращаемое значение:
//   Строка   - расшифрованные строковые данные.
//
Функция РасшифроватьСтроку(Знач ЗашифрованныеДанные, СекретныйКлюч)

// Инициализируем объект EnvelopedData и выполняем дешифрацию.
EncryptedData = Новый COMОбъект("CAPICOM.EncryptedData");
EncryptedData.SetSecret(СекретныйКлюч);
EncryptedData.Decrypt(ЗашифрованныеДанные);

Возврат EncryptedData.Content;

КонецФункции // РасшифроватьСтроку()


Обработку можно скачать по этой ссылке.
2. Пример работы обработки
Как устанавливается библиотека CAPICOM и почему не стоит ею злоупотреблять описано в статье Вычисление хэш-сумм MD, SHA при помощи CAPICOM.

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

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