查询

openssl_dh_compute_key()函数—用法及示例

「 使用Diffie-Hellman密钥交换协议计算共享密钥 」


函数名称:openssl_dh_compute_key()

函数描述:该函数使用Diffie-Hellman密钥交换协议计算共享密钥。

参数:

  • $pub_key: 公钥字符串。
  • $dh_key: Diffie-Hellman密钥资源。

返回值:成功时返回共享密钥的字符串,失败时返回false。

适用版本:PHP 5 >= 5.3.0, PHP 7

示例:

// 创建Diffie-Hellman密钥对
$dh_config = [
    "private_key_bits" => 2048,
    "private_key_type" => OPENSSL_KEYTYPE_DH,
];

$dh_res = openssl_pkey_new($dh_config);
openssl_pkey_export($dh_res, $dh_priv_key);
$dh_details = openssl_pkey_get_details($dh_res);

$pub_key = $dh_details['dh']['pub_key'];

// 计算共享密钥
$shared_key = openssl_dh_compute_key($pub_key, $dh_res);

echo "共享密钥: " . bin2hex($shared_key) . "\n";

在上面的示例中,我们首先使用openssl_pkey_new()函数创建了一个Diffie-Hellman密钥对,并使用openssl_pkey_export()导出私钥。然后,我们使用openssl_pkey_get_details()函数获取公钥。接下来,我们使用openssl_dh_compute_key()函数计算共享密钥。最后,我们将共享密钥以十六进制字符串的形式打印出来。

请注意,为了运行此示例,您的PHP版本必须为5.3.0或更高,并且必须启用OpenSSL扩展。

补充纠错
上一个函数: openssl_cms_sign()函数
下一个函数: openssl_spki_new()函数
热门PHP函数
分享链接