wcb-falcon
Новичок
Прошу помощи в реализации подписания алгоритмом RSA
на сервере через SSH были созданы файлы ключей:
private.pem и public.pem
При введении данных в форме идет обработка:
после чего получаем строку вида:
Y29tbWFuZD1wFuZD10cmVhD10cmVhD10cmVhbSUyOQ (обрезана для экономии места)
эти данные передаем на другой сервер (используя метод stream )
примерно так:
тоесть еслибы это был GET метод то в адресной строке было бы чтото вроде этого:
https://sayt.ru/test.php?param=Y29tbWFuZD1wFuZD10cmVhD10cmVhD10cmVhbSUyOQ
но это передача без подписи, а мне нужно подписать эти данные ключем из файла public.pem
чтобы в результате отправки получилось:
https://sayt.ru/test.php
?param=BASE64(НАБОР_ПАРАМЕТРОВ)
&signature=BASE64(RSA_SIGN(НАБОР_ПАРАМЕТРОВ))
Прошу помочь реализовать подпись данных перед отправкой.
Заранее спасибо.
на сервере через SSH были созданы файлы ключей:
private.pem и public.pem
При введении данных в форме идет обработка:
PHP:
$postarr = $_POST;
$newpost = '';
foreach($postarr as $el=>$value){
$newpost .= (empty($newpost)?'':'&').$el.'='.urlencode($value);
}
$urlpost = base64_encode($newpost);
Y29tbWFuZD1wFuZD10cmVhD10cmVhD10cmVhbSUyOQ (обрезана для экономии места)
эти данные передаем на другой сервер (используя метод stream )
примерно так:
PHP:
$url_host = 'https://sayt.ru';
$script = 'test.php';
$post = http_build_query(array('param'=>$urlpost));
$c_options = array(
'http' => array(
'method'=>'POST',
'header'=>"Content-type: application/x-www-form-urlencoded\r\n"
. "Content-Length: " . strlen($post) . "\r\n",
'content'=>$post
)
);
$context = stream_context_create($c_options);
$fp = fopen($url_host.'/'.$script, 'r', false, $context);
fpassthru($fp);
echo $fp;
fclose($fp);
https://sayt.ru/test.php?param=Y29tbWFuZD1wFuZD10cmVhD10cmVhD10cmVhbSUyOQ
но это передача без подписи, а мне нужно подписать эти данные ключем из файла public.pem
чтобы в результате отправки получилось:
https://sayt.ru/test.php
?param=BASE64(НАБОР_ПАРАМЕТРОВ)
&signature=BASE64(RSA_SIGN(НАБОР_ПАРАМЕТРОВ))
Прошу помочь реализовать подпись данных перед отправкой.
Заранее спасибо.