加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – openssl_verify():提供的密钥参数不能强制转换为.pem文

发布时间:2020-12-13 17:54:25 所属栏目:PHP教程 来源:网络整理
导读:目前正在尝试读取.pem公钥以通过openssl进行验证. /** * Check whether the signed message sent back by the server is * correct or not. */function check($str,$MAC){ $fp = fopen( dirname(__FILE__) . '/rsa_public_key.pem','r' ); $cert = fread($fp
目前正在尝试读取.pem公钥以通过openssl进行验证.
/**
 * Check whether the signed message sent back by the server is
 * correct or not.
 */
function check($str,$MAC)
{
    $fp = fopen(
        dirname(__FILE__) . '/rsa_public_key.pem','r'
    );

    $cert = fread($fp,8192);

    fclose($fp);

    $pubkeyid = openssl_get_publickey($cert);

    return openssl_verify($str,$MAC,$pubkeyid);
}

话虽如此,在执行我的脚本时,我收到此错误:

openssl_verify():提供的密钥参数不能被强制转换为X行某些/路径中的公钥

最初,我写了这个函数来接受.cer认证.这是对所有这些different key formats之间差异的解释.据我所知.pem类似于.cer,但是,我不能为我的生活弄清楚如何允许我的脚本读取我的.pem文件.

我的问题是 – 为了让我的函数读取这个公钥,我需要做什么?

编辑:在一些谷歌搜索,我已经尝试使用file_get_contents()到特定的路径,但我会收到相同的错误.

可能导致此错误的原因是什么?

打开这个.pem文件后,它就在一行中.看起来每行需要64个字符的长度,因此我确保每行为64行,并且它已成功解析.与.cer没有任何关系.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读