不暴露QQ号码的前提下得到QQ头像

用QQ号码找到对应的QQ头像地址(且不暴露用户的QQ号码) # 两个地址 通过一番F12-Network的奇技淫巧,可以找到如下两种获取我的QQ头像的方法

https://q.qlogo.cn/g?b=qq&nk=2775632269&s=100

https://q.qlogo.cn/g?b=qq&k=H2TQU1t17HiapSplCIBmkog&s=100

可以发现,前者用nk会暴露QQ号码,而后者用k应该是一个加密后的值,不会暴露QQ号码

如何得到QQ号码对应的k值呢,Bing了一下,找到了一种解决方案 # 转换 通过以下网址,我们能得到一堆东西(貌似是jsp)

https://ptlogin2.qq.com/getface?&imgtype=1&uin=2775632269

1
pt.setHeader({"2775632269":"https://thirdqq.qlogo.cn/g?b=sdk&k=H2TQU1t17HiapSplCIBmkog&s=40&t=1555595532"})

我们可以惊喜的看到我们要的k就在这里,于是我们就知道肿么处理了

1
2
3
4
5
先通过
https://ptlogin2.qq.com/getface?&imgtype=1&uin=QQ号
得到k值,然后可以访问
https://q.qlogo.cn/g?b=qq&k=对应的k值&s=100
得到QQ头像

头像的大小

我们会发现刚才那个网址得到的头像是100px*100px的头像,如果我们想得到更大或更小的头像,该肿么办呢?

我们会发现网址中的s值对应的就是size(大小),一番摸索尝试后,得到了s和大小的关系,如下表:

s值 大小
1 40*40
2 40*40
3 100*100
4 140*140
5 640*640
40 40*40
100 100*100
140 140*140
640 640*640

不过,如果头像的大小比s对应值的大小还小,就会返回原始头像(如某人的头像,是579px的,s=5或640时会返回一个579px的头像)


不暴露QQ号码的前提下得到QQ头像
https://blog.seniorious.cc/2019/get-qq-avatar/
作者
Seniorious
发布于
2019年5月19日
许可协议