验证PHP中的错误 - openssl_verify()

我试图通过 openssl_verify()</ code>函数验证签名:</ p> \ n

PHP代码:</ p>

  $ signature = pack(“H *”,$ ecdsa); 
$ verified = openssl_verify($ data,$ signature, $ public_key,“sha256”);
</ code> </ pre>

错误消息:</ p>


错误:错误:0606C06E: 数字包络例程:EVP_VerifyFinal:错误
公钥类型</ p>
</ blockquote>

错误消息“错误的公钥类型”是什么意思?</ p>

参数</ strong> </ p>

数据参数:</ p>


41.50978123OK1140720161227221826993f133b2b22d61a6e5bcc5323c00438b489ffac9301b20811d696eb03d7 </ p>
</ blockquote >

ECDSA PARAM:</ p>


304502201dc866a213bdcf42fad84ab8d00dc3ef4d0e10450fd6110070a866dbdeccc831022100f8062057f3022db78f7df3bff40547ef76be58eb55cb9f72a4b1ecc9f34ed54b </ p>
</ BLOCKQUOTE>

公钥:</ p>


----- BEGIN PUBLIC KEY ----- MFkwEwYHKoZIzj0CAQYIKoZIzj 0DAQcDQgAEozvFM1FJP4igUQ6kP8ofnY7ydIWksMDk1IKXyr / T
RDoX4sTMmmdiIrpmCZD4CLDtP0j2LfD7saSIc8kZUwfILg ==
----- END PUBLIC KEY ----- </ p>
</ blockquote>
</ div>

展开原文

原文

I am trying to verify signature via openssl_verify() function:

PHP code:

$signature = pack("H*", $ecdsa);
$verified = openssl_verify($data, $signature, $public_key, "sha256");

Error message:

error: error:0606C06E:digital envelope routines:EVP_VerifyFinal:wrong public key type

What means error message "wrong public key type"?

Parameters

Data param:

41.50978123OK1140720161227221826993f133b2b22d61a6e5bcc5323c00438b489ffac9301b20811d696eb03d7

ECDSA param:

304502201dc866a213bdcf42fad84ab8d00dc3ef4d0e10450fd6110070a866dbdeccc831022100f8062057f3022db78f7df3bff40547ef76be58eb55cb9f72a4b1ecc9f34ed54b

Public key:

-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEozvFM1FJP4igUQ6kP8ofnY7ydIWksMDk1IKXyr/T RDoX4sTMmmdiIrpmCZD4CLDtP0j2LfD7saSIc8kZUwfILg== -----END PUBLIC KEY-----

php
doula4096
doula4096 我也有同样的问题。你有解决方案吗?它看起来像银行安全检查..
一年多之前 回复
douliao8318
douliao8318 不,我在我的应用配置中将公钥存储为字符串。
大约 4 年之前 回复
duanpuluan0480
duanpuluan0480 你使用openssl_pkey_get_public来获取公钥文件吗?
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐