如何解决google AdMob验证Python中的SSV
我想使用python验证SSV回调,但是Google指南显示了使用java的情况。
下面的代码是我写的,下面的错误消息将被打印。
我从https://gstatic.com/admob/reward/verifier-keys.json(AdMob密钥服务器)那里获得了public_key["pem"]
public_key["pem"] = '-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE+nzvoGqvDeB9+SzE6igTl7TyK4JB\nbglwir9oTcQta8NuG26ZpZFxt+F2NDk7asTE6/2Yc8i1ATcGIqtuS5hv0Q==\n-----END PUBLIC KEY-----'
signature = p["signature"].encode("UTF-8") # b'MEYCIQDiXnPgnGbmzbJqaISiU_ZpHvyHn4984eT_QYirWNCBOQIhAJvmlJcOsBukjl1AO6mCdb3NTpbOgydywYl_qzkPXwcx'
data_to_verify = b'ad_network=...&user_id=test' # request parameter except signature,key_id
vk = ecdsa.VerifyingKey.from_pem(public_key["pem"])
vk.verify(signature,data_to_verify)
Traceback (most recent call last):
File "/usr/local/lib/python3.6/dist-packages/ecdsa/keys.py",line 706,in verify_digest
r,s = sigdecode(signature,self.pubkey.order)
File "/usr/local/lib/python3.6/dist-packages/ecdsa/util.py",line 344,in sigdecode_string
"provided string is {1} bytes long".format(2 * l,len(signature))
ecdsa.util.MalformedSignature: Invalid length of signature,expected 64 bytes long,provided string is 96 bytes long
During handling of the above exception,another exception occurred:
Traceback (most recent call last):
File "<stdin>",line 1,in <module>
File "/usr/local/lib/python3.6/dist-packages/ecdsa/keys.py",line 654,in verify
return self.verify_digest(signature,digest,sigdecode,allow_truncate)
File "/usr/local/lib/python3.6/dist-packages/ecdsa/keys.py",line 708,in verify_digest
raise BadSignatureError("Malformed formatting of signature",e)
ecdsa.keys.BadSignatureError: ('Malformed formatting of signature',MalformedSignature('Invalid length of signature,provided string is 96 bytes long',))
我误会了吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。