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 相关文章推荐
JavaScript使用cookie
Feb 02 Javascript
JavaScript中prototype为对象添加属性的误区介绍
Oct 15 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
Oct 22 Javascript
javascript事件模型实例分析
Jan 30 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
Jul 18 Javascript
基于vuejs实现一个todolist项目
Apr 11 Javascript
在微信小程序里使用watch和computed的方法
Aug 02 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
Aug 17 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
Sep 14 Javascript
js获取form表单中name属性的值
Feb 27 Javascript
jquery将json转为数据字典的实例代码
Oct 11 jQuery
JQuery样式与属性设置方法分析
Dec 07 jQuery
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
html中select语句读取mysql表中内容
2006/10/09 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
PHP后端银联支付及退款实例代码
2017/06/23 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
2007/04/01 Javascript
Jquery练习之表单验证实现代码
2010/12/14 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
jQuery实现简单的日期输入格式化控件
2015/03/12 Javascript
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
深入理解React中es6创建组件this的方法
2016/08/29 Javascript
聊一聊JS中的prototype
2016/09/29 Javascript
AngularJS入门教程之多视图切换用法示例
2016/11/02 Javascript
JavaScript定时器实现的原理分析
2016/12/06 Javascript
详解nodejs 开发企业微信第三方应用入门教程
2019/03/12 NodeJs
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
跟老齐学Python之编写类之二方法
2014/10/11 Python
django使用html模板减少代码代码解析
2017/12/12 Python
python脚本实现验证码识别
2018/06/07 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
实例讲解python中的协程
2018/10/08 Python
对Python信号处理模块signal详解
2019/01/09 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
详解如何设置Python环境变量?
2019/05/13 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
使用K.function()调试keras操作
2020/06/17 Python
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
工程资料员岗位职责
2014/03/10 职场文书
2014党委书记四风对照检查材料思想汇报
2014/09/21 职场文书
合作合同协议书范本
2015/01/27 职场文书
北京青年观后感
2015/06/15 职场文书