java下载百度网盘中资料,发现网上都只有关于公开分享的实现,没有关于私有分享的实现,抓包发现有一个关键参数:logid
url:https://pan.baidu.com/share/verify?surl=************&t=1509412566441&channel=chunlei&web=1&app_id=250528&bdstoken=null&logid=MTUzOTQxMjU3MjAzNTAuNzYxNTk5NzA2MzQ3MTM2&clienttype=0
下载js文件,分析追踪到由boot.js实现的该方法:https://pan.baidu.com/sns/box-static/disk-share/js/boot.js,提取相关代码编写html测试代码,ok通过了。
其中:67BFDB0118FA226AA5DDADE130F14929:FG=1是请求分享地址:https://pan.baidu.com/s/*****的response返回的cookies
百度网盘技术交流
932387647
<html> <body> <script type="text/javascript"> function loginIdExe(){ var u = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/~!@#¥%……&"; var l = String.fromCharCode; var d = function(e) { console.log("d:"+e); if (e.length < 2) { var n = e.charCodeAt(0); return 128 > n ? e : 2048 > n ? l(192 | n >>> 6) + l(128 | 63 & n) : l(224 | n >>> 12 & 15) + l(128 | n >>> 6 & 63) + l(128 | 63 & n) } var n = 65536 + 1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320); return l(240 | n >>> 18 & 7) + l(128 | n >>> 12 & 63) + l(128 | n >>> 6 & 63) + l(128 | 63 & n) }; var f = /[�-�][�-�F]|[^-]/g; var g = function(e) { var _srr=(e + "" + Math.random()); var _rep=_srr.replace(f, d); return _rep }; var h = function(e) { var n = [0, 2, 1][e.length % 3], t = e.charCodeAt(0) << 16 | (e.length > 1 ? e.charCodeAt(1) : 0) << 8 | (e.length > 2 ? e.charCodeAt(2) : 0), 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("") }; var m = function(e) { return e.replace(/[\s\S]{1,3}/g, h) }; var p = function() { var _t=(new Date).getTime(); var _g=g(_t); var _m=m(_g); console.log(_t); console.log(_g); console.log(_m); return _m }; this.w = function(e, n) { return n ? p(String(e)).replace(/[+\/]/g, function(e) { return "+" == e ? "-" : "_" }).replace(/=/g, "") : p(String(e)) }; } var bbc=new loginIdExe(); //var _encodeLoginid=bbc.w("67BFDB0118FA226AA5DDADE130F14929:FG=1"); //jsonp=JSON.parse(jsonp.json) //jsonp=JSON.parse(jsonp.webPgJson) document.write("id:"+bbc.w("67BFDB0118FA226AA5DDADE130F14929:FG=1")); </script> </body> </html>
f本身就是特殊的字符,所以看上去是乱码