Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

php openssl_sign

作者:傲世,小狂徒   发布日期:2025-07-05   浏览:76

<?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);
?>

解释说明:

  1. 定义待签名的数据$data 是需要签名的字符串。
  2. 私钥文件路径:指定包含私钥的文件路径。
  3. 读取私钥:使用 file_get_contents 函数读取私钥内容。
  4. 获取私钥资源:使用 openssl_pkey_get_private 函数将私钥内容转换为 OpenSSL 私钥资源。
  5. 检查私钥加载:确保私钥加载成功,否则输出错误信息并退出。
  6. 签名算法:选择用于签名的哈希算法(如 SHA256)。
  7. 进行签名:使用 openssl_sign 函数对数据进行签名。如果签名成功,将签名转换为十六进制字符串以便查看或传输;否则输出错误信息。
  8. 释放私钥资源:使用 openssl_free_key 函数释放私钥资源。

这段代码展示了如何使用 PHP 的 OpenSSL 扩展对数据进行数字签名。

上一篇:php 数组反转

下一篇:php sm4加密

大家都在看

php session用法

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 拆分字符串

php pcntl

php ||

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站