| ||||
| ||||
Кратко напомню проблему. (http://www.cryptopro.ru/CryptoPro/forum/myforum.asp?q=435) При использовании типа кодирования как BINARY иногда, на некоторых массивах данных возникала ошибка. Методом проб и ошибок я остановился на таком решении. У объекта EnvelopedData выставляются следующие значения: алгоритм - RC4 длина ключа - по умолчанию encoding type - Base64 Шифрование проходит без проблем даже больших объемов данных. После чего предполагалось, используя класс CAPICOM.Utilites, воспользоваться функциями Base64Decode и BinaryStringToByteArray. Полученный массив сохранить как двоичный файл. Провел тесты - все работает. На части реальных файлов - тоже. Но потом нашел интересную проблему. В некоторых случаях, строка, полученная из объекта EnvelopedData и строка над которой провели операции Decode и Encode - не равны. В строках, длиной 460020 байт отличаются всего 2 символа: 4 и 5 с конца. Может мне кто-нибудь что-нибудь сказать по этому поводу? Всем заранее большое спасибо. |