牛牛在线工具

openssl_pkey_derive()

收录 8868 个 PHP 函数,含用途说明与用法示例。

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()函数将共享密钥转换为十六进制字符串形式进行输出。 请注意,示例中的公钥和私钥仅用于说明目的,实际使用时应使用真实的密钥。