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 相关文章推荐
dojo学习第一天 Tab选项卡 实现
Aug 28 Javascript
{}与function(){}选用空对象{}来存放keyValue
May 23 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
Sep 22 Javascript
Jquery操作cookie记住用户名
Mar 29 Javascript
vue router2.0二级路由的简单使用
Jul 05 Javascript
vue移动端裁剪图片结合插件Cropper的使用实例代码
Jul 10 Javascript
js实现鼠标移动到图片产生遮罩效果
Oct 21 Javascript
vue+vue-validator 表单验证功能的实现代码
Nov 13 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
Dec 29 Javascript
node.js读取Excel数据(下载图片)的方法示例
Aug 02 Javascript
详解Angular模板引用变量及其作用域
Nov 23 Javascript
vue 自定义右键样式的实例代码
Nov 06 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
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
基于JQUERY的两个ListBox子项互相调整的实现代码
2011/05/07 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
Node.js 异步异常的处理与domain模块解析
2017/05/10 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
Python使用urllib2模块抓取HTML页面资源的实例分享
2016/05/03 Python
python的变量与赋值详细分析
2017/11/08 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
python语音识别实践之百度语音API
2018/08/30 Python
在Python中os.fork()产生子进程的例子
2019/08/08 Python
python并发爬虫实用工具tomorrow实用解析
2019/09/25 Python
python画环形图的方法
2020/03/25 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
方正Java笔试题
2014/07/03 面试题
大学生学业生涯规划
2014/01/05 职场文书
函授药学自我鉴定
2014/02/07 职场文书
《湘夫人》教学反思
2014/02/21 职场文书
安全检查汇报材料
2014/12/26 职场文书
如何写新闻稿
2015/07/18 职场文书
php微信小程序解包过程实例详解
2021/03/31 PHP
5行Python代码实现一键批量扣图
2021/06/29 Python