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 相关文章推荐
IE与FireFox的兼容性问题分析
Apr 22 Javascript
JavaScript基本概念初级讲解论坛贴的学习记录
Feb 22 Javascript
jQuery中(function(){})()执行顺序的理解
Mar 05 Javascript
JavaScript修改浏览器tab标题小技巧
Jan 06 Javascript
Angular中的Promise对象($q介绍)
Mar 03 Javascript
文字垂直滚动之javascript代码
Jul 29 Javascript
跟我学习javascript的异步脚本加载
Nov 20 Javascript
使用Angular缓存父页面数据的方法
Jan 03 Javascript
vue+ElementUI实现订单页动态添加产品数据效果实例代码
Jul 13 Javascript
10个最受欢迎的 JavaScript框架(推荐)
Apr 24 Javascript
JavaScript中的this基本问题实例小结
Mar 09 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
Aug 03 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中++i 与 i++ 的区别
2012/08/08 PHP
php准确获取文件MIME类型的方法
2015/06/17 PHP
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
2013/06/29 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
AngularJS ng-bind 指令简单实现
2016/07/30 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
基于$.ajax()方法从服务器获取json数据的几种方式总结
2018/01/31 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
vue.js父子组件通信动态绑定的实例
2018/09/28 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
vue添加锚点,实现滚动页面时锚点添加相应的class操作
2020/08/10 Javascript
vue 将多个过滤器封装到一个文件中的代码详解
2020/09/05 Javascript
Python操作json数据的一个简单例子
2014/04/17 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
2017/04/18 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
Python函数式编程
2017/07/20 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
经济学人订阅:The Economist
2018/07/19 全球购物
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
P D PAOLA意大利官网:西班牙著名的珠宝首饰品牌
2019/09/24 全球购物
优秀员工表扬信
2014/01/17 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
四风个人对照检查材料思想汇报
2014/09/25 职场文书
追悼会答谢词范文
2015/09/29 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript