我有一个php页面,它接收包含一些数据和签名的POST请求,因此我可以验证它,使用SHA256和RSA进行签名,现在当我尝试使用phpseclib验证签名时,它会失败,但是如果我使用phpseclib
签署相同的确切消息并在php中尝试签名验证正常。
这是我的phpcode
$rsa->loadKey($publicKey);
$rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
$rsa->setHash('sha256');
$signature = $headers['authorization'];
echo $rsa->verify($canonical,base64_decode($signature)) ? 'verified' : 'not verified';
$canonical
是我正在验证的数据。
这是python代码:
signature_str = rsa.sign(canonicalRequest.encode('utf8') , gt.privKey, 'SHA-256')
我猜猜python rsa生成的签名块可能包含额外的信息或其他内容,但我还没有找到任何有关此信息的信息。