php openssl做什么,php openssl_sign()函数有什么用?

本文详细介绍了PHP的openssl_sign()函数,该函数用于使用私钥生成加密数字签名。通过openssl_pkey_new()创建新的密钥对,然后使用openssl_pkey_export()导出私钥。接着,利用openssl_sign()对数据进行签名,并保存签名及公钥。最后,通过openssl_verify()验证签名的正确性,展示了完整的PHP代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php openssl_sign()函数用于生成签名;该函数通过使用与$priv_key_id参数关联的私钥生成加密数字签名,为指定的数据输入签名。$priv_key_id是一个由openssl_get_privatekey()返回的密钥。

4cab2f131c3632c2bbd7f66a511946b4.png

php openssl_sign()函数

openssl_sign - 生成签名

语法openssl_sign( string $data , string &$signature , mixed $priv_key_id [, mixed $signature_alg = OPENSSL_ALGO_SHA1 ] )

openssl_sign() 通过使用与priv_key_id关联的私钥生成加密数字签名,为指定的数据输入签名。 请注意,数据本身未加密。

参数:

4926cee7008a411dca1dbb4539c14242.png

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE。

示例//data you want to sign

$data = 'my data';

//create new private and public key

$new_key_pair = openssl_pkey_new(array(

"private_key_bits" => 2048,

"private_key_type" => OPENSSL_KEYTYPE_RSA,

));

openssl_pkey_export($new_key_pair, $private_key_pem);

$details = openssl_pkey_get_details($new_key_pair);

$public_key_pem = $details['key'];

//create signature

openssl_sign($data, $signature, $private_key_pem, OPENSSL_ALGO_SHA256);

//save for later

file_put_contents('private_key.pem', $private_key_pem);

file_put_contents('public_key.pem', $public_key_pem);

file_put_contents('signature.dat', $signature);

//verify signature

$r = openssl_verify($data, $signature, $public_key_pem, "sha256WithRSAEncryption");

var_dump($r);

版本支持

7002a8a91595470549524b69dea78078.png

更多相关知识,请访问 PHP中文网!!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值