[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: openssl_verify
Prontit
Здравствуйте!
Необходимо проверить открытым ключом строку, которая приходит GET запросом.

запрос такой:

key.php?action=check&number=100001&amount=10.50&type=1&sign=5EB7E68A5140BC62FB1A50EAF1A589FD8B40B239B31B6AEE799C9DA1F396144F79DDC2D4332E655D3D0DE60E9BE3BF5EB62E026766554AAF7A0B7201E0BACA1A68E12FD12F32016CD48E452D76D3136078AB53BD878B23D88BCB705C5C9406184E0D6264D3D3709ECBDDA994EB5CAE8F81C2A64FC015C20572598B56DD58F689


делаю так:

//исходная строка GET запроса   
$get_str = $_SERVER['QUERY_STRING'];

//позиция параметра SIGN
$sign_place = strpos($get_str, "sign");

//строка без параметра SIGN
$string_wthout_sign = substr($get_str, 0, $sign_place - 1);

//Хеш строки запроса без SIGN
$string_hash = sha1($string_wthout_sign);

//строка SIGN
$string_sign = $_GET['sign'];

//Открытый ключ для проверки
$public_key = <<<EOD
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEPpPvdefdg/NpfoENZgem4rxE
JWJFX6pOP3fCyMuBAt7F5ieqnYLhREN9loR56ACJhA17lK3A6tt1bROxLGtFwv4L
hrXI+qjQiQHZIsJKW2waE2KQdI9jiSE+9vg+iIoAYHSFx029wvJQRQH9qHifDXfa
VWdYr5icleV7My9jiwIDAQAB
-----END PUBLIC KEY-----

EOD;

$ok = openssl_verify($string_wthout_sign, $string_hash, $public_key, OPENSSL_ALGO_SHA1);
echo "check #1: ";
if ($ok == 1) {
echo "signature ok (as it should be)\n";
} elseif ($ok == 0) {
echo "bad (there's something wrong)\n";
} else {
echo "ugly, error checking signature\n";
}


читал тут http://www.php.net/manual/en/function.openssl-sign.php

не работает.....что я делаю не так?

Заранее благодарю!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.