代码:

//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+"&timestamp="+yunData.timestamp+"&fidlist=%5B"+data[index-1].fs_id+"%5D",success:function(d){console.warn(d.dlink
[0].dlink);}});}

用法:

1.进入网盘文件目录。

2.F12打开调试工具将代码粘贴到控制台并回车。

3.在控制台输入down(文件序号)命令,回车即可得到文件的下载地址,可复制到任何下载工具满速下载。

“文件序号”对应文件目录列表,下载第一个文件就输入down(1),第二个文件就输入down(2),依此类推。注意括号是英文括号。

原理:

下载链接获取接口:

通过监听与其服务器交互的请求数据分析得到获取下载链接的接口,在源文件中搜索发现了接口的调用过程。

接口:/api/download?sign=***&timestamp=***&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脚本实现百度网盘任意文件强制下载的更多相关文章

  1. For macOS.百度网盘 破解SVIP、下载速度限制~

    For macOS.百度网盘 破解SVIP.下载速度限制~ 是插件的 https://github.com/CodeTips/BaiduNetdiskPlugin-macOS 2019-01-03 让 ...

  2. [PHP] 网盘搜索引擎-采集爬取百度网盘分享文件实现网盘搜索

    标题起的太大了,都是骗人的.最近使用PHP实现了简单的网盘搜索程序,并且关联了微信公众平台.用户可以通过公众号输入关键字,公众号会返回相应的网盘下载地址.就是这么一个简单的功能,类似很多的网盘搜索类网 ...

  3. Visual Studio 2017 发布 15.5 版本,百度网盘离线安装包下载。

    Visual Studio 2017 15.5 版本已正式发布,同时发布的还有 Visual Studio for Mac 7.3 .此次更新包含主要性能改进,新特性以及 bug 修复.发行说明中文版 ...

  4. 百度网盘免VIP全速下载!

    不知道大家在用百度网盘下载文件时会不会遇到这样一个问题: 过分! 太过分了! 100M的宽带你就给我限速到20KB/s... 当然 解决办法有很多 1.充钱(这辈子都不可能的) ······ 百度上有 ...

  5. 百度网盘无vip高速下载的方法

    我拿的是谷歌浏览器做实验 首先下载一个可以改user-agent的插件 我chorm里面下载的是User-Agent Switcher for Chrome插件 将百度网盘的url地址中的baidu. ...

  6. 下载百度网盘破解 获得 所下载视频URL 粘贴到thunder

    Chrome:方法1. 进入谷歌商城,搜索baidudl.安装即可. 方法2. 下载baidudl.zip.解压获得baidudl文件夹.进入chrome://extensions/,勾选右上角Dev ...

  7. 百度网盘kbengine - warring项目下载地址

    http://pan.baidu.com/s/1k4J4y 下载解压之后,请看<<使用说明.doc>>,有更新指导

  8. 打造百度网盘备份利器:自动备份Linux VPS文件和多线程下载百度网盘资源

    前一段时间国内的各大网盘百度云盘,金山快盘,360云盘,华为网盘为争夺用户上演空间容量博弈,网盘商们还固执地以为中国的网民都不懂网络技术,可以像某公司那样用一些数字的手段来忽悠用户,参与到网盘商的数字 ...

  9. 百度网盘下载器 PanDownload v2.0

    PanDownload是一款坚持以用户体验为中心,畅快淋漓的下载为理念而打造的下载工具. 从2017年2月9日首个版本推出,时至今日已经一年七个月了,首先感谢大家一直以来的支持与建议,促使着我不断地对 ...

随机推荐

  1. 搭建无人值守安装服务器(CentOS)

    使用PXE+DHCP+TFTP+Kickstart+FTP搭建无人值守安装服务器.一般只有频繁安装系统才会搭建无人值守安装服务器. 虚拟机环境:youxi1,CentOS7系统双网卡,一个网卡桥接模式 ...

  2. PJzhang:钓鱼域名生成工具urlcrazy

    猫宁!!! www.baidu.com和www.baibu.com是不是很相似,urlcrazy可以自动生成一大批. 这款工具的作者是Andrew Horton 工具下载地址: http://www. ...

  3. 【并行计算-CUDA开发】英伟达硬件解码器分析

    这篇文章主要分析 NVCUVID 提供的解码器,里面提到的所有的源文件都可以在英伟达的 nvenc_sdk 中找到. 解码器的代码分析 SDK 中的 sample 文件夹下的 NvTranscoder ...

  4. 石子合并/能量项链【区间dp】

    题目链接:http://www.51mxd.cn/problem.php-pid=737.htm 题目大意:给出n个石子堆以及这n个石子堆中石子数目,每次操作合并两个相邻的石子堆,代价为两个石子堆数目 ...

  5. 什么是云解析DNS?

    产品概述 云解析DNS(Alibaba Cloud DNS)是一种安全.快速.稳定.可扩展的权威DNS服务,云解析DNS为企业和开发者将易于管理识别的域名转换为计算机用于互连通信的数字IP地址,从而将 ...

  6. 盒模型中padding、border、margin的区别

    在CSS中,规定了一种基本设计模型——盒模型(也叫框模型),如图所示: 其中包含了四部分内容:element/元素(即图中文字).padding/内边框(图中两个红色边框之间白色部分).border/ ...

  7. Redis 原子操作——事务

    MULTI 标记一个事务块的开始. 事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行. 可用版本: >= 1.2.0 时间复杂度: O(1) ...

  8. JAVA开发者大会:拍拍贷MQ系统原理与应用

    --喜欢记得关注我哟[shoshana]-- 前记: 5月12号参加了JAVA开发者大会,就<拍拍贷消息系统原理及应用> 作者:李乘胜老师 关于PMQ的分享整理一下笔记以及笔记的思考 和复 ...

  9. Graduation(思维,树上取叶子几次取完)

    题意:https://codeforces.com/group/ikIh7rsWAl/contest/259944/problem/G 给你一颗树(可能有好几棵),你每次最多只能去掉k个叶子节点,问你 ...

  10. 码云以及Git的使用

    码云以及Git的使用 码云就是一个远程管理的仓库,Git是用来上传和下载数据的工具. 首先访问网站 https://gitee.com/ 进行注册 注册完成后,进入如下页面 点击新建仓库 设置自己的仓 ...