Статус: Новичок
Группы: Участники
Зарегистрирован: 05.05.2011(UTC) Сообщений: 2 Откуда: Самара
|
Здравствуйте, ув. форумчане! Требуется шифровать файлы на стороне клиента в браузере. Использую CAPICOM Задача "почти" решена. Одно но. Шифруются только простые текстовые файлы.. т.е. читабельные.. такие файлы как doc, pdf, иначе говоря - бинарные - шифруются не правильно. вот код: Цитата: // функция чтения файла function readfile(path) { var fso, ts; fso = new ActiveXObject("Scripting.FileSystemObject"); ff = fso.GetFile(path); ts = ff.OpenAsTextStream(1); data = ts.read(ff.size); ts.close(); return data; }
var data = readfile(document.getElementById("doks"+i).value); EnvelopedData.Content=data; EnvelopedData.Recipients.Add(certificate.Item(vibran)); document.getElementById("doks_shifr").value = EnvelopedData.Encrypt(CAPICOM_ENCODE_BASE64); EnvelopedData.Recipients.Clear();
т.е. что происходит... Пользователь указывает путь к файлу, мы его читаем в data, затем шифруем и зашифрованное пишем в textarea. после отправки формы содержимое textarea записываем в файл. Всё это работает, но с текстовыми файлами. Если зашифровать таким способом документ Word, то после расшифровки, документ нельзя открыть программой.. Фактически, бинарный файл функцией readfile считывается в data неверно.. что делать.. не знаю.. подскажите, пожалуйста, как все же зашифровать бинарный файл.
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 05.05.2011(UTC) Сообщений: 2 Откуда: Самара
|
Если нельзя с помощью CAPICOM шифровать файлы-документы типа DOC, PDF то в какую сторону двигаться, чтобы на сервере файлы таких типов были зашифрованы? потому как openSSL тоже не работает с "тяжелыми" файлами...
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 29.04.2011(UTC) Сообщений: 18 Откуда: RR
|
eltoko написал:Требуется шифровать файлы на стороне клиента в браузере. Использую CAPICOM Задача "почти" решена. Одно но. Шифруются только простые текстовые файлы.. т.е. читабельные.. такие файлы как doc, pdf, иначе говоря - бинарные - шифруются не правильно. вот код: Цитата: // функция чтения файла function readfile(path) { var fso, ts; fso = new ActiveXObject("Scripting.FileSystemObject"); ff = fso.GetFile(path); ts = ff.OpenAsTextStream(1); data = ts.read(ff.size); ts.close(); return data; }
var data = readfile(document.getElementById("doks"+i).value); EnvelopedData.Content=data; EnvelopedData.Recipients.Add(certificate.Item(vibran)); document.getElementById("doks_shifr").value = EnvelopedData.Encrypt(CAPICOM_ENCODE_BASE64); EnvelopedData.Recipients.Clear();
т.е. что происходит... Пользователь указывает путь к файлу, мы его читаем в data, затем шифруем и зашифрованное пишем в textarea. после отправки формы содержимое textarea записываем в файл. Всё это работает, но с текстовыми файлами. Если зашифровать таким способом документ Word, то после расшифровки, документ нельзя открыть программой.. Фактически, бинарный файл функцией readfile считывается в data неверно.. что делать.. не знаю.. подскажите, пожалуйста, как все же зашифровать бинарный файл. Здравствуйте! Есть подозрения, что таким способом Вы не сможете зашифровать бинарный файл потому, что Scripting.FileSystemObject может работать только с текстовыми файлами (http://msdn.microsoft.com/en-us/library/aa711216(v=vs.71).aspx) т.е. прочитать бинарник в браузере - непросто, пробовал через ADODB.Stream, так он по=умолчанию отключен для использования в IE (из-за проблем с безопастностью), так что использовать его проблематично и вряд ли целесообразно (как я сейчас понимаю). Может нужно писать свой ActiveX, который и будет шифровать файл? Или обратить внимание на JCP? Опять же, чувствую, пока не попробуешь - не узнаешь какие там грабли :) --- Если Вы решите проблему или у Вас появится информация по данному вопросу, пожалуйста, приведите ее в этой ветке. Отредактировано пользователем 15 мая 2011 г. 3:09:42(UTC)
| Причина: Не указана
|
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close