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 相关文章推荐
jQuery点击自身以外地方关闭弹出层的简单实例
Dec 24 Javascript
用js通过url传参把数据从一个页面传到另一个页面
Sep 01 Javascript
5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例
Jan 29 Javascript
jQuery实现的产品自动360度旋转展示特效源码分享
Aug 21 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
May 30 Javascript
JS异步文件分片断点上传的实现思路
Dec 25 Javascript
BootStrap 弹出层代码
Feb 09 Javascript
AngularJs 终极购物车(实例讲解)
Nov 08 Javascript
js登录滑动验证的实现(不滑动无法登陆)
Jan 03 Javascript
webpack4 css打包压缩问题的解决
May 18 Javascript
对angular2中的ngfor和ngif指令嵌套实例讲解
Sep 12 Javascript
解决layui checkbox 提交多个值的问题
Sep 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开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
编辑浪子版表单验证类
2007/05/12 Javascript
js apply/call/caller/callee/bind使用方法与区别分析
2009/10/28 Javascript
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
在Ubuntu上安装最新版本的Node.js
2014/07/14 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
AngularJS中的模块详解
2015/01/29 Javascript
jQuery的css() 方法使用指南
2015/05/03 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
javascript html5摇一摇功能的实现
2016/04/19 Javascript
js 转json格式的字符串为对象或数组(前后台)的方法
2016/11/02 Javascript
分享bootstrap学习笔记心得(组件及其属性)
2017/01/11 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
Angular获取手机验证码实现移动端登录注册功能
2017/05/17 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
利用H5api实现时钟的绘制(javascript)
2020/09/13 Javascript
python输入错误密码用户锁定实现方法
2017/11/27 Python
python筛选出两个文件中重复行的方法
2018/05/31 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
PyQt5实现画布小程序
2020/05/30 Python
python 瀑布线指标编写实例
2020/06/03 Python
详解Python高阶函数
2020/08/15 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
纯css3实现照片墙效果
2014/12/26 HTML / CSS
中专生自我鉴定
2013/12/17 职场文书
毕业生护理专业个人求职信范文
2014/01/04 职场文书
安全保卫工作竞聘材料
2014/08/25 职场文书