signature=1be7575a614ba3597c2c53247a739d1c,错误openssl_sign(): supplied key param cannot be coerced in...

这段代码展示了如何使用PHP处理RSA的私钥和公钥,进行数据签名和验证。私钥通过`chunk_split`函数格式化,然后用`openssl_sign`进行签名;公钥同样处理后,使用`openssl_verify`进行签名验证。涉及到的技术包括RSA、MD5哈希和SHA1哈希。

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

原因:RSA 的秘钥一般都有固定换行格式

私钥:

$str=’私钥(改成一行)’;

$str = chunk_split($str, 64, "\n");

$key = "-----BEGIN RSA PRIVATE KEY-----\n$str-----END RSA PRIVATE KEY-----\n";

$signature = '';

if (openssl_sign($data, $signature, $key, OPENSSL_ALGO_MD5)) {

echo base64_encode($signature);

}

公钥:

$data='内容';

$str='公钥(改成一行)';

$str = chunk_split($str, 64, "\n");

$key = "-----BEGIN PUBLIC KEY-----\n$str-----END PUBLIC KEY-----\n";

$signature = "";

if (openssl_verify(base64_decode($data), $signature, $key, OPENSSL_ALGO_MD5) == 1) {

echo $signature;

}

openssl(SHA1WithRSA) 签名 验签

//签名:

public function wjSign($data){

$key = openssl_pkey_get_private(file_get_contents($this->privateKeyPathWJ));

openssl_sign($data, $sign, $key, OPENSSL_ALGO_SHA1);

$sign = base64_encode($sign);

return $sign;

}

//验签:

public function wjVerify($data, $sign){

$sign = base64_decode($sign);

$key = openssl_pkey_get_public(file_get_contents($this->publicKeyPathWJ));

$result = openssl_verify($data, $sign, $key, OPENSSL_ALGO_SHA1) === 1;//1成功 0失败 -1错误

return $result;

}

<?xml version="1.0" encoding="utf-8"?> <profiles xmlns="http://www.logitech.com/Cassandra/2010.7/Profile"> <profile gpasupported="0" guid="{8977B654-FA93-4E7A-8DD1-E09045D7AABF}" gameid="" lock="0" gkeysdk="0" launchable="1" lastplayeddate="2021-01-04T00:05:25" name="食鸡模式"> <description></description> <target path="J:\GAMES\CYBERPUNK.2077.PRELOAD.GOGRIP-INSANERAMZES\CYBERPUNK 2077\REDPRELAUNCHER.EXE"/> <signature value="" key="" name="" executable=""/> <macros> <macro original="true" guid="{01E20D9C-6574-4BBA-8D0D-E25BE4027F2F}" color="4278246655" hidden="true" name="左键单击"> <mousefunction xmlns="http://www.logitech.com/Cassandra/2010.1/Macros/MouseFunction"> <do task="leftclick"/> </mousefunction> </macro> <macro original="true" guid="{94423986-29AA-4706-9C10-FA4A4766E852}" color="4278246655" hidden="true" name="右键单击"> <mousefunction xmlns="http://www.logitech.com/Cassandra/2010.1/Macros/MouseFunction"> <do task="rightclick"/> </mousefunction> </macro> <macro original="true" guid="{81DDE469-DCE6-43B0-8E2E-A739E910B35B}" color="4278246655" hidden="true" name="单击中键"> <mousefunction xmlns="http://www.logitech.com/Cassandra/2010.1/Macros/MouseFunction"> <do task="middleclick"/> </mousefunction> </macro> <macro original="true" guid="{D2F7FA32-51D4-4245-A623-29E47014CFC1}" color="4278246655" hidden="true" name="返回"> <mousefunction xmlns="http://www.logitech.com/Cassandra/2010.1/Macros/MouseFunction"> <do task="back"/> </mousefunction> </macro> <macro original="true" guid="{2377C3C1-8C55-4879-AACE-987FCB6FF9B5}" color="4278246655" hidden="true" name="前进"> <mousefunction xmlns="http://www.logitech.com/Cassandra/2010.1/Macros/MouseFunction"> <do task="forward"/> </mousefunction> </macro> <macro original="true" guid="{CAB40FE5-DDB3-4761-8798-710674CB6FF2}" color="42
04-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值