查詢

openssl_pkey_derive()函式—用法及示例

「 透過使用私鑰計算共享金鑰,用於金鑰交換協議 」


函式名稱:openssl_pkey_derive()

適用版本:PHP 5 >= 5.6.0, PHP 7

函式說明:openssl_pkey_derive()函式透過使用私鑰計算共享金鑰,用於金鑰交換協議。

語法:openssl_pkey_derive(resource $private_key, string $public_key, int $key_length)

引數:

  • $private_key: 私鑰資源,通常透過openssl_pkey_get_private()函式獲取。
  • $public_key: 公鑰,通常是對方的公鑰。
  • $key_length: 所需的共享金鑰長度(以位元組為單位),通常與加密演算法相關。

返回值:返回共享金鑰,以字串形式表示。

示例:

// 生成私鑰和公鑰
$private_key = openssl_pkey_new();
$private_key_details = openssl_pkey_get_details($private_key);
$public_key = $private_key_details['key'];

// 對方的公鑰
$peer_public_key = "-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2i5LrQ8z3zN3q0Wfz0Ji3ZpA3
1zqGtKjey3ZP8Xg0vKJ7wJ0jCt6J3vJUyXVtQyfD6GkVU3K3cTcYs1VcF52JPJ5A
6q8YGfGzS3YrJ0dQZDlqkzP0sZqNvWw/3s6ArjzU3aH3Zv5FJ4Wyl3Zd0oP3cOxo
DyUyjVQ6nRn6+KuZ2wIDAQAB
-----END PUBLIC KEY-----";

// 計算共享金鑰
$shared_key = openssl_pkey_derive($private_key, $peer_public_key, 32);

// 輸出共享金鑰
echo bin2hex($shared_key);  // 將共享金鑰轉換為十六進位制字串形式

以上示例中,首先使用openssl_pkey_new()函式生成一個新的私鑰和公鑰對。然後,將對方的公鑰賦值給$peer_public_key變數。最後,呼叫openssl_pkey_derive()函式計算共享金鑰,並將結果儲存在$shared_key變數中。最後,透過bin2hex()函式將共享金鑰轉換為十六進位制字串形式進行輸出。

請注意,示例中的公鑰和私鑰僅用於說明目的,實際使用時應使用真實的金鑰。

補充糾錯
上一個函式: openssl_pkey_export()函式
下一個函式: openssl_pkcs12_read()函式
熱門PHP函式
分享連結