本文浅谈下这几个参数怎么来的,主要是在点赞,关注,还要视频发布的请求里出现这种。
1.登录时的bd-ticket-guard-client-data
bd_ticket_guard_client_data是通过
base64.b64encode(('{"bd-ticket-guard-version":2,"bd-ticket-guard-iteration-version":1,"bd-ticket-guard-ree-public-key":'+f'"{Bd_key}"'+',"bd-ticket-guard-web-version":1}').encode()).decode()
得到的
2.bd-ticket-guard-ree-public-key
bd-ticket-guard-ree-public-key是通过编码私钥,通过一个类似base64编码后得到的,当然不是标准的base64编码
3.正常请求的bd_ticket_guard_client_data
bd-ticket-guard-client-data是base64编码,明文是
'{"ts_sign":"","req_content":"ticket,path,timestamp","req_sign":'
+f'"{res_sign}"'+',"timestamp":'+str(timestamp)+'}'
这里面就涉及到ts_sign跟req_sign了
ts_sign是登录的时候返回的,也是被base64编码了,键名是bd_ticket_guard_server_data,ts_sign就在这里面
req_sign的明文是
req_sign=f"ticket=&path=/aweme/v1/web/commit/item/digg/×tamp={timestamp}"
里面的ticket也是cookie返回的,就不细说了
req_sign他是通过rsa的私钥加密得来的,rsa的私钥是跟公钥一起产生的,通过代码产生,登录的时候就已经产生,登录过程中会提交base64编码后的被加密后的公钥,他不会让你看到明文的公钥
公钥跟私钥都是本地的代码生成的,提交后才能激活,所以不是随便生成的公钥和私钥就能用,一定要在登录的时候提交后才能激活使用
4.结论
得到这几个参数就可以点赞,关注,或者上传视频了
这里面主要的部分就在于登录,主要参数都是在登录过程中生成的。验证码登录过程中还会遇到滑块验证码,这个旧版的滑块就可以过,跟其他接口也不一样,登录这个接口检测的比较松,其他接口如果用老版本的就会返回验证码过于频繁,这些都是坑,欢迎讨论!!!
如果还有啥想问的可以私聊
V:ProfessorLuoMing
记得备注来意