牛牛在线工具

openssl_pkey_new()

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

openssl_pkey_new()

生成数字签名,公钥可以用于验证数字签名

函数名称:openssl_pkey_new() 适用版本:PHP 4 >= 4.2.0, PHP 5, PHP 7 函数描述:openssl_pkey_new() 生成一个新的私钥和公钥对。私钥可以用于生成数字签名,公钥可以用于验证数字签名。 用法: openssl_pkey_new ([ array $configargs ] ) : resource|false 参数: configargs(可选):一个关联数组,用于设置密钥生成的一些参数。常见的参数有: "private_key_bits":私钥的位数,默认为 2048。 "private_key_type":私钥的类型,默认为 OPENSSL_KEYTYPE_RSA。 "digest_alg":使用的摘要算法,默认为 "sha256"。 "config":openssl.cnf 配置文件路径,默认为系统默认路径。 返回值: 成功生成密钥对时,返回一个 OpenSSL 密钥资源(resource),失败时返回 false。 示例: // 生成一个新的私钥和公钥对 $privateKey = openssl_pkey_new(); if ($privateKey) { // 获取公钥信息 $publicKey = openssl_pkey_get_details($privateKey)['key']; // 输出私钥和公钥 echo "Private Key: " . openssl_pkey_get_private($privateKey) . "\n"; echo "Public Key: " . $publicKey . "\n"; // 使用私钥生成数字签名 $data = "Hello, world!"; openssl_sign($data, $signature, $privateKey); // 验证数字签名 $isValid = openssl_verify($data, $signature, $publicKey); if ($isValid === 1) { echo "Signature is valid.\n"; } elseif ($isValid === 0) { echo "Signature is invalid.\n"; } else { echo "Verification error.\n"; } } else { echo "Failed to generate key pair.\n"; } 注意:在实际使用中,私钥应该妥善保管,不应该公开。公钥可以安全地公开给其他人用于验证数字签名。