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 表单进行客户端验证demo
Aug 24 Javascript
Jquery下判断Id是否存在的代码
Jan 06 Javascript
THREE.JS入门教程(4)创建粒子系统
Jan 24 Javascript
jquery动态增加text元素以及删除文本内容实例代码
Jul 01 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
Oct 17 Javascript
学习JavaScript设计模式之模板方法模式
Jan 20 Javascript
深入理解JQuery中的事件与动画
May 18 Javascript
javascript垃圾收集机制的原理分析
Dec 08 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
Jan 20 Javascript
JS跳转手机站url的若干注意事项
Oct 18 Javascript
微信小程序用户自定义模版用法实例分析
Nov 28 Javascript
vue-prop父组件向子组件进行传值的方法
Mar 01 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中根据变量的类型 选择echo或dump
2012/07/05 PHP
phpMyAdmin无法登陆的解决方法
2017/04/27 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
使用JS画图之点、线、面
2015/01/12 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
js每隔两秒输出数组中的一项(实例)
2017/05/28 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
python web基础之加载静态文件实例
2018/03/20 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
基于python实现高速视频传输程序
2019/05/05 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
美丽的现代设计家具:2Modern
2018/07/26 全球购物
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
优秀应届生推荐信
2013/11/09 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
群众路线教育实践活动自我剖析思想汇报
2014/10/04 职场文书
质检员工作总结2015
2015/04/25 职场文书
地道战观后感500字
2015/06/04 职场文书
鲁冰花观后感
2015/06/10 职场文书
北京爱情故事观后感
2015/06/12 职场文书
毕业酒会致辞
2015/07/29 职场文书
物业管理交接协议书
2016/03/24 职场文书
SQL实现LeetCode(175.联合两表)
2021/08/04 MySQL
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL