You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用cjwt库验证PS384算法JWT令牌失败求助

用cjwt库验证PS384算法JWT时出现RSA_PSS验证错误

我尝试用cjwt库验证头部为PS384算法的JWT令牌,参考了库自带的RS256算法示例程序(因为文档说明PS算法与RS算法几乎相同),但在jws_evp_openssl.c文件的EVP_DigestVerifyFinal(md_ctx, in->sig.data, in->sig.len)函数处触发错误:

  • 错误代码:67625094
  • 错误信息:error:0407E086:rsa routines:RSA_verify_PKCS1_PSS_mgf1:last octet invalid

排查与解决建议

  • 确认签名格式与哈希匹配:PS384要求签名采用PKCS#1 PSS格式,且MGF1掩码生成函数必须使用SHA-384哈希算法。检查JWT签名Base64URL解码后的二进制数据是否符合该格式,避免编码错误。
  • 替换所有哈希相关配置:修改RS256示例时,要把所有SHA256相关的配置替换为SHA384:
    • 初始化EVP消息摘要上下文时,使用EVP_sha384()替代EVP_sha256()
    • 通过EVP_PKEY_CTX_set_rsa_mgf1_md()显式设置MGF1的哈希算法为SHA384
  • 核对公钥有效性:确保用于验证的公钥与签发JWT的私钥是配对的,且公钥PEM格式无误(无多余字符、换行正确)。
  • 检查JWT头部正确性:确认JWT头部的alg字段确实是PS384,无拼写错误,Base64URL解码后的JSON格式合法。

内容的提问来源于stack exchange,提问作者Vijay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 12:35:10