Статус: Новичок
Группы: Участники
Зарегистрирован: 05.03.2019(UTC) Сообщений: 4
Сказал(а) «Спасибо»: 3 раз
|
Коллеги, здравствуйте Есть сертификат, провожу по нему процесс шифрации/дешифрации, чтобы убедиться, что всё работает. Есть код на PHP с использованием phpcades (практически из примера http://cpdn.cryptopro.ru...s/phpcades-samples.html) для шифрования: Код:function test($filename)
{
try {
$cert = SetupCertificate(
CURRENT_USER_STORE,
"My",
STORE_OPEN_READ_ONLY,
CERTIFICATE_FIND_SUBJECT_NAME,
'xxxxxxx',
0,
1
);
if (!$cert) {
return "Certificate not found";
}
$cp = new \CPEnvelopedData();
$content=file_get_contents($filename);
$cp->set_Content($content);
$cp->get_Recipients()->Add($cert);
print $cp->Encrypt(0);
return 1;
} catch (Exception $e) {
printf($e->getMessage());
return 0;
}
}
test($argv[1]);
Если с его помощью зашифровать файл, то он успешно расшифровывается командой cryptcp как если бы был зашифрован той же командой Но... Есть код для расшифровки Код:function test($filename)
{
try {
$cert = SetupCertificate(
CURRENT_USER_STORE,
"My",
STORE_OPEN_READ_ONLY,
CERTIFICATE_FIND_SUBJECT_NAME,
'xxxxxxx',
0,
1
);
if (!$cert) {
return "Certificate not found";
}
$cp = new \CPEnvelopedData();
$content=file_get_contents($filename);
$cp->get_Recipients()->Add($cert);
$cp->Decrypt($content);
var_dump($cp->get_Content());
return 1;
} catch (Exception $e) {
printf($e->getMessage());
return 0;
}
}
test($argv[1]);
Который при использовании с зашифрованным предыдущей функцией контентом (или файлом через cryptcp) выдает некие иероглифы (буквально). Вопрос: что я делаю не так? Казалось бы элементарно вроде как. Но наверняка есть нюанс же... Заранее спасибо
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2044 раз в 1585 постах
|
Здравствуйте. Попробуйте указать CADESCOM_BASE64_TO_BINARY перед присвоением контента (закодированного в base64) Особенности работы с бинарными даннымиЦитата: Это касается следующих методов: CadesSignedData.Sign, CadesSignedData.CoSign, CadesSignedData.SignCades, CadesSignedData.CoSignCades, CadesSignedData.EnhanceCades, CPAttribute.ValueEncoding, EncodedData.Value , Certificate.Export, EnvelopedData.Encrypt.
|
|
1 пользователь поблагодарил Андрей * за этот пост.
|
kerby оставлено 21.03.2019(UTC)
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,691 Сказал «Спасибо»: 500 раз Поблагодарили: 2044 раз в 1585 постах
|
|
|
1 пользователь поблагодарил Андрей * за этот пост.
|
kerby оставлено 21.03.2019(UTC)
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 05.03.2019(UTC) Сообщений: 4
Сказал(а) «Спасибо»: 3 раз
|
Автор: Андрей Писарев Здравствуйте. Попробуйте указать CADESCOM_BASE64_TO_BINARY перед присвоением контента (закодированного в base64) Особенности работы с бинарными даннымиЦитата: Это касается следующих методов: CadesSignedData.Sign, CadesSignedData.CoSign, CadesSignedData.SignCades, CadesSignedData.CoSignCades, CadesSignedData.EnhanceCades, CPAttribute.ValueEncoding, EncodedData.Value , Certificate.Export, EnvelopedData.Encrypt.
Спасибо! Все получилось...
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close