V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zzzain46
V2EX  ›  程序员

百度网盘 logid 生成算法

  •  
  •   zzzain46 · 2020-05-03 13:01:30 +08:00 via Android · 3173 次点击
    这是一个创建于 1661 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近有个自动保存别人更新的分享文件到自己网盘的需求,看了下发现 post 的时候有个 logid 参数,搞不出来他的生成算法。有没有大佬研究过这个的指点一下

    4 条回复    2020-05-30 19:33:02 +08:00
    AX5N
        1
    AX5N  
       2020-05-03 16:31:04 +08:00   ❤️ 1
    你可以去 github 上找相关的项目看看,里面一般都会有。
    dsg001
        2
    dsg001  
       2020-05-03 16:52:43 +08:00
    不用在意,直接去掉这个参数也能 post 成功
    crab
        3
    crab  
       2020-05-03 16:53:27 +08:00
    max3
        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));
    }
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2606 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:49 · PVG 23:49 · LAX 07:49 · JFK 10:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.