JS实现百度网盘任意文件强制下载功能


Posted in Javascript onAugust 31, 2018

代码:

//get file list data
var data=require("system-core:context/context.js").instanceForSystem.getList().listView.listsData;
//calculate sign
function base64Encode(r){var t,e,a,c,n,o,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(a=r.length,e=0,t="";a>e;){if(c=255&r.charCodeAt(e++),e==a){t+=h.charAt(c>>2),t+=h.charAt((3&c)<<4),t+="==";break}if(n=r.charCodeAt(e++),e==a){t+=h.charAt(c>>2),t+=h.charAt((3&c)<<4|(240&n)>>4),t+=h.charAt((15&n)<<2),t+="=";break}o=r.charCodeAt(e++),t+=h.charAt(c>>2),t+=h.charAt((3&c)<<4|(240&n)>>4),t+=h.charAt((15&n)<<2|(192&o)>>6),t+=h.charAt(63&o)}return t}
function u(j,r){var a=[];var p=[];var o="";var v=j.length;for(var q=0;q<256;q++){a[q]=j.substr((q%v),1).charCodeAt(0);p[q]=q}for(var u=q=0;q<256;q++){u=(u+p[q]+a[q])%256;var t=p[q];p[q]=p[u];p[u]=t}for(var i=u=q=0;q<r.length;q++){i=(i+1)%256;u=(u+p[i])%256;var t=p[i];p[i]=p[u];p[u]=t;k=p[((p[i]+p[u])%256)];o+=String.fromCharCode(r.charCodeAt(q)^k)}return o}
var sign=base64Encode(u(yunData.sign5, yunData.sign1)).replace(/=/g,"%3D").replace(/\+/g,"%2B");
//downloader
function down(index){$.ajax({type:"GET",url:"/api/download?sign="+sign+"×tamp="+yunData.timestamp+"&fidlist=%5B"+data[1].fs_id+"%5D",success:function(d){console.warn(d.dlink
[index-1].dlink);}});}

用法:

JS实现百度网盘任意文件强制下载功能

1.进入网盘文件目录。

JS实现百度网盘任意文件强制下载功能

2.F12打开调试工具将代码粘贴到控制台并回车。

JS实现百度网盘任意文件强制下载功能

3.在控制台输入down(文件序号)命令,回车即可得到文件的下载地址,可复制到任何下载工具满速下载。

“文件序号”对应文件目录列表,下载第一个文件就输入down(1),第二个文件就输入down(2),依此类推。注意括号是英文括号。

原理:

下载链接获取接口:

通过监听与其服务器交互的请求数据分析得到获取下载链接的接口,在源文件中搜索发现了接口的调用过程。

接口:/api/download?sign=***×tamp=***&fidlist=%5B***%5D"

在去除了一些不影响调用结果的参数后得知调用接口主要需要以下参数:

1.sign(用户身份)
2.timestamp(时间戳)
3.fs_id(文件标识码)

sign的计算:

算法在源文件中可以发现,“var sign=”搜索全部文件即可发现算法代码,将其复制调用就能计算出sign的值。

timestamp的获取:

该值保存在全局变量中,直接yunData.timestamp就可以拿到。

fs_id的获取:

调用“context.js”脚本就可以拿到文件列表,文件列表中保存了当前目录所有文件的fs_id。

var data=require("system-core:context/context.js").instanceForSystem.getList().listView.listsData;

总结

以上所述是小编给大家介绍的JS实现百度网盘任意文件强制下载,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
node.js中的fs.readdirSync方法使用说明
Dec 17 Javascript
jQuery元素选择器用法实例
Dec 23 Javascript
javascript十六进制及二进制转化的方法
May 06 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
May 26 Javascript
超详细的JS弹出窗口代码大全
Apr 18 Javascript
vue2导航根据路由传值,而改变导航内容的实例
Nov 10 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
May 22 Javascript
详解Vue中watch对象内属性的方法
Feb 01 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
js canvas实现星空连线背景特效
Nov 01 Javascript
vue下axios拦截器token刷新机制的实例代码
Jan 17 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
Mar 02 Javascript
angular1.x ui-route传参的三种写法小结
Aug 31 #Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
Aug 31 #Javascript
Angular 利用路由跳转到指定页面的指定位置方法
Aug 31 #Javascript
Vue 莹石摄像头直播视频实例代码
Aug 31 #Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
Aug 31 #Javascript
Vue加载组件、动态加载组件的几种方式
Aug 31 #Javascript
Bootstrap模态对话框用法简单示例
Aug 31 #Javascript
You might like
PHP MSSQL 存储过程的方法
2008/12/24 PHP
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
php时区转换转换函数
2014/01/07 PHP
php多重接口的实现方法
2015/06/20 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
Javascript实现计算个人所得税
2015/05/10 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
JavaScript中的await/async的作用和用法
2016/10/31 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
jQuery实现推拉门效果
2020/10/19 jQuery
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python中AND、OR的一个使用小技巧
2015/02/18 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
python实现银行实战系统
2020/02/26 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
国际商贸专业自荐信
2014/06/09 职场文书
优秀大专毕业生求职信
2014/08/04 职场文书
公民代理授权委托书
2014/09/24 职场文书
党校毕业个人总结
2015/02/28 职场文书
Win10加载疑难解答时出错发生意外错误的解决方法
2022/07/07 数码科技