新浪微博图床图片倒推PO主

昨天V2有个热度很高的帖子发现微博图片可以链接找到发图的人

内容为:

例如链接为 http://wx1.sinaimg.cn/mw690/9d0d09abgy1fj0wcs7aewj20ij0sn12y.jpg 的图

提取文件名 9d0d09abgy1fj0wcs7aewj20ij0sn12y,前 8 位 9d0d09ab 用 16 进制转换下变为 2634877355,就是用户 uid

如果是 http://wx1.sinaimg.cn/mw690/006r2HqOgy1fj7dxg3zuxj30p02a1wry.jpg 这种 005 006 开头的就用 62 进制转

为什么出现这个应该是发现 8 位 16 进制存不下了。。。。

当时看到了,顺手写了个小脚本,贴上来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function getPicOwner(url) {
const picid = url.replace(/.+\/(\w{32})\.[^.]+$/gm, '$1');
const hash = picid.substr(0, 8);
const dict = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
let out = 0;
const radix = hash.startsWith('00') ? 62 : 16;
for (let i = 0; i < hash.length; i++) {
out += dict.indexOf(hash.substr(i, 1)) * Math.pow(radix, hash.length - i - 1);
}
return `http://weibo.com/u/${out}`;
}
const a1 = getPicOwner('http://ww3.sinaimg.cn/large/0060lm7Tly1fj8dcbq7bcj30f0076jr7.jpg');
const a2 = getPicOwner('http://wx1.sinaimg.cn/mw690/9d0d09abgy1fj0wcs7aewj20ij0sn12y.jpg');
console.log(a1);
console.log(a2);
坚持原创技术分享,您的支持将鼓励我继续创作!