这个 public key == private key 是怎么来的
How is this public key == private key
这是使用 wordpress plugin 进行测试的一部分,它基本上是一个许可证管理器。我试图了解系统的内部结构。这是它的工作原理。
激活插件后,它会使用一个简单的函数 'lic_verification_private_secret' => uniqid('', true)
生成私钥 55d0ec3f9db414.02268045
。现在,当有人购买商品时,例如。 一个 wordpress 插件,生成一个 public 许可证密钥 55d5d22ab70d2
(使用 uniqid()
)。然后 public 密钥被发送到客户的电子邮件 ID。客户将该密钥输入他的站点并向许可证服务器发送请求。下面是关于许可证管理器插件@server 如何将私钥与 public 密钥匹配的函数。
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';
共享密钥:
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?";
}
密钥可以是许可证顺便说一下,因为那是你想要保密的。
这是使用 wordpress plugin 进行测试的一部分,它基本上是一个许可证管理器。我试图了解系统的内部结构。这是它的工作原理。
激活插件后,它会使用一个简单的函数 'lic_verification_private_secret' => uniqid('', true)
生成私钥 55d0ec3f9db414.02268045
。现在,当有人购买商品时,例如。 一个 wordpress 插件,生成一个 public 许可证密钥 55d5d22ab70d2
(使用 uniqid()
)。然后 public 密钥被发送到客户的电子邮件 ID。客户将该密钥输入他的站点并向许可证服务器发送请求。下面是关于许可证管理器插件@server 如何将私钥与 public 密钥匹配的函数。
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';
共享密钥:
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?";
}
密钥可以是许可证顺便说一下,因为那是你想要保密的。