最近有个自动保存别人更新的分享文件到自己网盘的需求,看了下发现 post 的时候有个 logid 参数,搞不出来他的生成算法。有没有大佬研究过这个的指点一下
1
AX5N 2020-05-03 16:31:04 +08:00 1
你可以去 github 上找相关的项目看看,里面一般都会有。
|
2
dsg001 2020-05-03 16:52:43 +08:00
不用在意,直接去掉这个参数也能 post 成功
|
3
crab 2020-05-03 16:53:27 +08:00
w(BAIDUID)
https://paste.ubuntu.com/p/q8SSZr2Fgy/ |
4
max3 2020-05-30 19:33:02 +08:00
function getLogID(){
var name = "BAIDUID"; var u = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/~!@#¥%……&"; var d = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g; var f = String.fromCharCode; function l(e){ if (e.length < 2) { var n = e.charCodeAt(0); return 128 > n ? e : 2048 > n ? f(192 | n >>> 6) + f(128 | 63 & n) : f(224 | n >>> 12 & 15) + f(128 | n >>> 6 & 63) + f(128 | 63 & n); } var n = 65536 + 1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320); return f(240 | n >>> 18 & 7) + f(128 | n >>> 12 & 63) + f(128 | n >>> 6 & 63) + f(128 | 63 & n); } function g(e){ return (e + "" + Math.random()).replace(d, l); } function m(e){ var n = [0, 2, 1][e.length % 3]; var t = e.charCodeAt(0) << 16 | (e.length > 1 ? e.charCodeAt(1) : 0) << 8 | (e.length > 2 ? e.charCodeAt(2) : 0); var o = [u.charAt(t >>> 18), u.charAt(t >>> 12 & 63), n >= 2 ? "=" : u.charAt(t >>> 6 & 63), n >= 1 ? "=" : u.charAt(63 & t)]; return o.join(""); } function h(e){ return e.replace(/[\s\S]{1,3}/g, m); } function p(){ return h(g((new Date()).getTime())); } function w(e,n){ return n ? p(String(e)).replace(/[+\/]/g, function(e) { return "+" == e ? "-" : "_"; }).replace(/=/g, "") : p(String(e)); } return w(getCookie(name)); } |