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 鼠标滑动显示详情应用示例
Jan 24 Javascript
jquery下div 的resize事件示例代码
Mar 09 Javascript
jQuery中removeProp()方法用法实例
Jan 05 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
Jun 08 Javascript
JS模拟的Map类实现方法
Jun 17 Javascript
深入浅析JavaScript中的scrollTop
Jul 11 Javascript
jQuery图片切换动画效果
Feb 28 Javascript
详解react-router4 异步加载路由两种方法
Sep 12 Javascript
Angular 数据请求的实现方法
May 07 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
Jul 18 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
Jul 22 Javascript
Vue的列表之渲染,排序,过滤详解
Feb 24 Vue.js
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文件操作实例代码
2012/05/10 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
PHP+Ajax验证码验证用户登录
2016/07/20 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
javasctipt如何显示几分钟前、几天前等
2014/04/30 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
Angular ng-repeat 对象和数组遍历实例
2016/09/14 Javascript
浅谈Angular.js中使用$watch监听模型变化
2017/01/10 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
jquery+css实现Tab栏切换的代码实例
2019/05/14 jQuery
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
2019/07/22 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
微信小程序中weui用法解析
2019/10/21 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
Python基础学习之常见的内建函数整理
2017/09/06 Python
python中数据爬虫requests库使用方法详解
2018/02/11 Python
python统计中文字符数量的两种方法
2019/01/31 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
全世界最美丽的四星和五星级酒店预订:Prestigia.com
2017/11/15 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
管理心得体会
2013/12/28 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
优质护理服务心得体会
2016/01/22 职场文书
springboot临时文件存储目录配置方式
2021/07/01 Java/Android
PHP RabbitMQ消息列队
2022/05/11 PHP
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript