我的基于mbedtls的库C语言RSA验签的结果和py程序签名不一致,想找出原因。
5条回答 默认 最新
阿里嘎多学长 2025-06-06 09:49关注阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
RSA验签程序问题
你遇到了基于mbedtls库的C语言RSA验签程序的问题,结果与Py程序签名不一致。下面是一些可能的原因和解决方案:
- Key格式不同:mbedtls库使用的Key格式可能不同于Py程序使用的Key格式。请检查Key的格式是否正确,是否需要进行Base64编码或其他处理。
- Padding方式不同:RSA验签时,padding方式可能不同。mbedtls库可能使用的是PKCS#1 v1.5 padding,而Py程序使用的是其他padding方式。请检查padding方式是否正确。
- Hash算法不同:验签时,使用的Hash算法可能不同。mbedtls库可能使用的是SHA-1,而Py程序使用的是其他Hash算法。请检查Hash算法是否正确。
- Signature encoding不同:Signature的编码方式可能不同。mbedtls库可能使用的是DER编码,而Py程序使用的是其他编码方式。请检查Signature的编码方式是否正确。
解决方案:
- 检查Key格式是否正确。
- 检查padding方式是否正确。
- 检查Hash算法是否正确。
- 检查Signature的编码方式是否正确。
如果以上解决方案不能解决问题,请提供更多的信息和代码,例如mbedtls库的版本、Py程序的代码和Key的内容等。
解决 无用评论 打赏 举报