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 相关文章推荐
js最简单的拖拽效果实现代码
Sep 24 Javascript
JavaScript实现多个重叠层点击切换效果的方法
Apr 24 Javascript
如何用jQuery实现ASP.NET GridView折叠伸展效果
Sep 26 Javascript
基于JavaScript如何制作遮罩层对话框
Jan 26 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
Feb 23 Javascript
Vue实现双向数据绑定
May 03 Javascript
vue打包后显示空白正确处理方法
Nov 01 Javascript
vue中的mvvm模式讲解
Jan 31 Javascript
详解微信小程序支付流程与梳理
Jul 16 Javascript
Vue2.X和Vue3.0数据响应原理变化的区别
Nov 07 Javascript
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 Vue.js
JS数组方法some、every和find的使用详情
Oct 05 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
国内咖啡文化
2021/03/03 咖啡文化
php学习之 循环结构实现代码
2011/06/09 PHP
利用PHP获取网站访客的所在地位置
2017/01/18 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
laravel框架实现后台登录、退出功能示例
2019/10/31 PHP
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
2007/11/30 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
js判断生效时间不得大于失效时间的思路及代码
2013/04/23 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器(优化篇)
2013/06/28 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
javascript基本算法汇总
2016/03/09 Javascript
AngularJS实用开发技巧(推荐)
2016/07/13 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
Angular4 反向代理Details实践
2018/05/30 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
浅谈python多线程和队列管理shell程序
2015/08/04 Python
Python数据结构之单链表详解
2017/09/12 Python
python打造爬虫代理池过程解析
2019/08/15 Python
Django框架中间件定义与使用方法案例分析
2019/11/28 Python
python3 求约数的实例
2019/12/05 Python
torch 中各种图像格式转换的实现方法
2019/12/26 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
Python新手如何理解循环加载模块
2020/05/29 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
英国足球店:UK Soccer Shop
2017/11/19 全球购物
澳大利亚最受欢迎的美发用品目的地:AMR
2019/08/28 全球购物
美国尼曼百货官网:Neiman Marcus
2019/09/05 全球购物
学校招生宣传广告词
2014/03/19 职场文书
2014年绿化工作总结
2014/12/09 职场文书
红色电影观后感
2015/06/18 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android