📅  最后修改于: 2023-12-03 15:18:20.632000             🧑  作者: Mango
openssl_verify()
函数使用公钥验证给定数据的签名。它可以用来验证来自第三方的数据是否曾被正确签名,以确定数据是否已被篡改或伪造。
openssl_verify ( string $data , string $signature , mixed $public_key , int $algorithm = OPENSSL_ALGO_SHA256 ) : bool
参数名 | 描述 -------|------- data | 要验证签名的数据。 signature | 签名。 public_key | 公钥。 algorithm | 指定摘要算法,如 SHA-1、SHA-256 等。默认为 SHA256。
如果签名有效,返回 1
,否则返回 0
。
以下示例展示如何使用 openssl_verify()
函数验证数据签名。
// 假设以下为从服务器上下载到的数据和签名
$data = 'Some data to be validated';
$signature = '308201753082011EA...ABE83B42BA2AA8B22F';
// 从文件中获取公钥
$public_key = openssl_get_publickey(file_get_contents('public_key.pem'));
// 验证签名
$result = openssl_verify($data, base64_decode($signature), $public_key, OPENSSL_ALGO_SHA256);
// 输出验证结果
if ($result == 1) {
echo 'Signature is valid.';
} else {
echo 'Signature is invalid.';
}
// 关闭公钥
openssl_free_key($public_key);
以上示例首先定义了要验证的数据和签名。openssl_get_publickey
函数从文件中获取公钥,openssl_verify
函数使用此公钥验证数据签名的有效性。如果签名有效,则输出 Signature is valid.
,否则输出 Signature is invalid.
。最后使用 openssl_free_key
函数关闭公钥。
在 PHP 中使用 openssl_verify()
函数可以验证来自第三方的数据签名,以确定数据是否已被篡改或伪造。它可以帮助我们确保数据的完整性和安全性。