Здравствуйте. Помогите разобраться. Задача стоит так: есть XML-ка. Надо получить хэш от неё, потом хэш подписывается ключом, шифруется в Base64 и отправляется. Не могу разобраться в какой момент куда в каком виде передаются данные. И собственно, как надо по-проффессиональному. Вот моя реализация и мои комменты как я понимаю. Код (Text): $key = file_get_contents(__DIR__ . '/private_key.pem'); $PrivateKey = openssl_pkey_get_private($key, 'key_password'); if ($PrivateKey === false) { die ('Key error'); } $sign = ''; $binary_data = unpack("H*", $xml); //Здесь $binary_data в шестнадцатиричном виде $hash = sha1($binary_data[1]); //$hash в шестнадцатиричном виде openssl_sign(hex2bin($hash), $sign, $PrivateKey); //$hash переводим в бинарный вид. $sign получаем в бинарном виде $sign = base64_encode($sign); request($sign); У меня вопрос, как правильно: в функцию openssl_sign данные нужно ложить в бинарном виде или достаточно в шестнадцатиричном? Спасибо заранее за разъяснения
base64 он, кажется, использует для преобразования уже шифрованных бинарных данных в что-то, легко передающееся по каналам связи.