函数名:openssl_sign()
适用版本:PHP 4 >= 4.0.4, PHP 5, PHP 7
用法:openssl_sign()函数用于对数据进行签名,使用指定的私钥进行加密。签名后的数据可以通过openssl_verify()函数进行验证。
语法: bool openssl_sign ( string $data , string &$signature , mixed $priv_key_id [, mixed $signature_alg = OPENSSL_ALGO_SHA256 ] )
参数:
返回值: 成功时返回true,失败时返回false。
示例:
// 加载私钥
$privateKey = openssl_pkey_get_private(file_get_contents('private_key.pem'));
// 要签名的数据
$data = "Hello, world!";
// 签名数据
if (openssl_sign($data, $signature, $privateKey, OPENSSL_ALGO_SHA256)) {
echo "签名成功!\n";
echo "签名数据:" . base64_encode($signature) . "\n";
} else {
echo "签名失败!\n";
}
// 验证签名
$publicKey = openssl_pkey_get_public(file_get_contents('public_key.pem'));
if (openssl_verify($data, $signature, $publicKey, OPENSSL_ALGO_SHA256)) {
echo "签名验证通过!\n";
} else {
echo "签名验证失败!\n";
}
// 释放资源
openssl_free_key($privateKey);
openssl_free_key($publicKey);
注意事项: