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中判断控件是否存在
Aug 25 Javascript
js中通过split函数分割字符串成数组小例子
Sep 21 Javascript
js获取url参数代码实例分享(JS操作URL)
Dec 13 Javascript
js判断浏览器版本以及浏览器内核的方法
Jan 20 Javascript
跟我学习javascript的var预解析与函数声明提升
Nov 16 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
Jan 04 Javascript
微信小程序 chooseImage选择图片或者拍照
Apr 07 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
Oct 25 Javascript
layui实现数据表格隐藏列的示例
Oct 25 Javascript
浅析Vue 防抖与节流的使用
Nov 14 Javascript
JavaScript实现省市联动效果
Nov 22 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
Nov 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
PHP 检查扩展库或函数是否可用的代码
2010/04/06 PHP
php 数组使用详解 推荐
2011/06/02 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
详细讲解JS节点知识
2010/01/31 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
2011/03/20 Javascript
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
javascript之Boolean类型对象
2016/06/07 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
js实现碰撞检测特效代码分享
2016/10/16 Javascript
Js实现京东无延迟菜单效果实例(demo)
2017/06/02 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
尝试自己动手用react来写一个分页组件(小结)
2018/02/09 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
node-red File读取好保存实例讲解
2019/09/11 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
python计算最小优先级队列代码分享
2013/12/18 Python
讲解Python中的标识运算符
2015/05/14 Python
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
捷克玩具商店:Bambule
2019/02/23 全球购物
大型会议接待方案
2014/03/01 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
博士给导师的自荐信
2015/03/06 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书