PHP解析RSA 2048公钥失败,无法验证RSA PKCS#1v1.5 SHA256签名求助
RSA公钥解析失败及签名验证问题
基础信息
- RSA 2048公钥字符串:
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmHPAou1FpNAoLwF/mL0rei8QcC+LvKIYteEHOpxGibI6PNQ8kSpB7WNPJT2wM+B0+DT04L5LBi78PSo1UQO3umYEhHbAsKuNBV3CR8NGfUsWzSkgIzkbTCsELWkJT50foBT4YmBKEe6W8Ai2+3yzvMtic8RtBel73zS3dIdUUGaf7SMPtva+XDZTozRNiyligPh0nDgHcj6OQAtCxfTogLKukwaEPyWA06nQ68pMsxzzHqUZl5HJuDJRphAtOc2ZRFXZ1xaxVMO2D7UnkFA5q00UBW/i+KzkhgtNkLI8j2jiBim3IozRwpjQJvFsKoi29WDWPXcgtTU6k9kSmJBIqQIDAQAB - 待验证数据:
{"username":"user@example.com","requestTime":"1679669234"} - 签名(RSA PKCS#1v1.5 SHA256):
PiXcXFykgtOZY+tpmmXqt39VHwURd5NSIGL0U+TEj+qS6QwIT4Eh4W3fKYfIXwZGDu6Rdsu2PQxqBMhEQe7H7C0nq6ssih74MLavxpLuGPxmlZJ/EN2/m2fhLweerjS6U1uMIDcKE6cZgSD6z+KfkuWnKssM5yuMEkdztL5ef0Ay6Il0jXGayp+tLMGxGZaJLv31PRmYoK3c68buGphKV0hnj2y6+rKsoPfn+sVDxInH40oNcxF2zU+Y3ed9pW+/VOpnkTE9MoSNthNvwjNpRFJr4Awx7mKmOGe3dvC3yZ+iZ/lT892pTSwqo1O2mtXskbsUe1+xEfrzbi1/0ejy/g==
遇到的问题
尝试用PHP的openssl_verify验证签名,但第一步openssl_pkey_get_public就无法解析公钥。试过以下多种操作:
- 给公钥添加
-----BEGIN RSA PUBLIC KEY-----/-----END RSA PUBLIC KEY-----头尾,也试过-----BEGIN PUBLIC KEY-----/-----END PUBLIC KEY----- - 用
chunk_split($publickey, 64, "\n")拆分公钥后再传入解析函数
每次操作后,openssl_error_string()返回错误:
error:0909006C:PEM routines:get_name:no start line
需求
需要验证该签名,优先使用原生PHP扩展实现,若必须使用第三方库(如phpseclib)也可接受。
内容的提问来源于stack exchange,提问作者paran
相关产品推荐
相关产品推荐

