Как этот открытый ключ == закрытый ключ

Это часть теста с этим плагин WordPress который в основном менеджер лицензий. Я пытаюсь понять внутренности системы. Вот как это работает.

Как только плагин активирован, он генерирует закрытый ключ 55d0ec3f9db414.02268045 используя простую функцию 'lic_verification_private_secret' => uniqid('', true), Теперь, когда кто-то делает покупку предмета, например. плагин WordPress, открытый лицензионный ключ 55d5d22ab70d2 генерируется (используя uniqid()). Открытый ключ затем отправляется на электронный адрес клиента. Клиент вводит этот ключ на свой сайт и отправляет запрос на сервер лицензий. Ниже приведена функция о том, как плагин менеджера лицензий @server сопоставляет закрытый ключ с открытым ключом.

static function verify_secret_key() {
$slm_options = get_option('slm_plugin_options');
$private_secret_key = $slm_options['lic_verification_private_secret'];
$public_key = strip_tags($_REQUEST['secret_key']); //this is sent in the query string
if ($public_key == $private_secret_key) {
// send a message back to client saying the key is verified.
}

Все это работает, поэтому, в принципе, где я в тупике, так это то, как справедливо приведенное ниже уравнение? Какую часть картины мне не хватает?

55d5d22ab70d2 == 55d0ec3f9db414.02268045

Обновление — я выполнил этот тест, и он отражает ложь, которая, я думаю, очевидна.

echo '55d0ec3f9db414.02268045' === '55d5d22ab70d2' ? 'true' : 'false';

0

Решение

Общий секретный ключ:

function generate_signature($message, $secret) {
$serialized_message = serialize($message);
return md5($serialized_message . $secret);
}

$secret = "i like pie";
$content = array(
"i like" => "pie",
"pancakes" => "are also nice");
$message = serialize(array(
"signature" => generate_signature($content , $secret),
"content" => $content
));

// send the message

$message = unserialize($_POST["message"]);
$signature = generate_signature($message["content"], $secret);
if ($signature === $message["signature"]) {
echo "ok";
} else {
echo "you don't like pie?";
}

Секретным ключом может быть лицензия между прочим, так как это то, что вы хотите сохранить в секрете.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]