<?php
// 定义待签名的数据
$data = "This is the data to be signed.";
// 私钥文件路径
$private_key_file = 'path/to/private_key.pem';
// 读取私钥
$private_key = file_get_contents($private_key_file);
// 使用 openssl_pkey_get_private 获取私钥资源
$pkey = openssl_pkey_get_private($private_key);
// 检查是否成功获取私钥
if ($pkey === false) {
echo "Failed to load private key.";
exit;
}
// 签名算法(例如 SHA256)
$algorithm = "SHA256";
// 进行签名
$signature = "";
if (openssl_sign($data, $signature, $pkey, $algorithm)) {
// 将签名转换为十六进制字符串以便查看或传输
$signature_hex = bin2hex($signature);
echo "Signature: " . $signature_hex;
} else {
echo "Failed to sign data.";
}
// 释放私钥资源
openssl_free_key($pkey);
?>
$data
是需要签名的字符串。file_get_contents
函数读取私钥内容。openssl_pkey_get_private
函数将私钥内容转换为 OpenSSL 私钥资源。openssl_sign
函数对数据进行签名。如果签名成功,将签名转换为十六进制字符串以便查看或传输;否则输出错误信息。openssl_free_key
函数释放私钥资源。这段代码展示了如何使用 PHP 的 OpenSSL 扩展对数据进行数字签名。
上一篇:php 数组反转
下一篇:php sm4加密
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站