解密国内某技术网站千本电子书之密(二)

上回聊到咱拿到了某DN付费电子书的接口后还解了密。得知所有电子书目录。今天咱继续在聊是如何拿到书籍内容并且解密的。

当我开始阅读某DN的电子书,发现这个页面居然F12按下去没有效果。看来是被禁了。嘻嘻不怕,这个只能防范不懂技术的人。Google浏览器的更多工具里面有个开发者工具选项。就是F12的调试模式。某DN限制了键唤起,阻止不了google的工具。

很快就找到了文章内容的接口,我直接看接口的返回值。不过当然是加密的这是基本操作了。先说说接口的入参如下:

version: 1.0
time: 1607587837
param: {“bookid”:“书籍id”,“showid”:章节id}
guid: 1
signature: 签名
获取文章内容接口也是加密,加密方式和上一篇的书籍列表接口一样,这里就不再重述。聊聊这个文章内容怎么解密。

先贴上文章接口返回的JSON对象。

code: 200
data: {
content: “加密后的内容”
istrial: 0
secretkey: “秘钥”
title: “第1章 神经网络发展史”
}
message: “”
从这个JSON对面可以看出有私钥。难道只要用这个私钥就能拿到解密后的文章内容?咱先找找JS文件看看这个加密的方式还是不是MD5。

一番查找发现一家不是MD5加解密,是AES加解密。还发现这个解密没那么简单,这个私钥不能直接用。先说说我们作为某DN的用户,在某DN有一个唯一标识也是ID。我们分两步聊聊这个解密。

第一步它是用这个ID进行MD5加密,加密后的值是32位。截取前16位作为AES 的key ,后面的16位作为iv 从接口返回的secretkey 作为解密体。这样得到一个新的私钥。

第二步用这个新的32位私钥截取。前16位作为key,后16位做为iv 接口返回的content文章内容体就是这次的解密体。最终得出一个html页面。

不过并不是一个接口返回整篇文章,是有章节段落的。得先调用章节接口拿到整本书所有的章节信息,最重要的是章节id。拿到章节id也就是showid,作为参数才能去调用文章信息接口。贴上接口入参

version: 1.0
time: 1607603273
param: {“bookid”:“书籍id”}
guid: 1
signature: 486d5008c551072fd63e29832120c342
在贴上接口返回参数JSON

code:200
data:{
chapterList:[
id: 1
islock: 0
pid: 1
rate: 47
secretkey: null
showid: 1
title: “第1章 神经网络发展史”
url: “”
]
}
message:""
由此咱们可以得出整个逻辑,咱先建三张表

book_all 存所有数据名称目录

book_chapter 章节信息表 关联book_all 的主键book_id

book_detail 书籍内容 show_id 关联book_chapter的 chapter_id, book_id 关联book_all 的book_id

一顿噼里啪啦 敲完代码

先把所有的数据捞回来存到数据库。这样随时用随时取。

1.通过accessAllBooks接口 拿到所有的书籍目录及id

2.通过chapter接口 拿到所有书籍的章节

3.通过show接口 拿到书籍的内容

再一顿噼里啪啦

取出所有的书籍内容解密生成HTML文件

至于PDF我尝试过,生成的效果不理想我最终还是没有用。

这九百多本书籍我还在想用什么方式呈现给大家。

不过我有一个有趣的想法就是也搞一个网站免费提供搜索 阅读 下载。但是只能利用下班时间搞,要实现需要时日。

注:另有其他技术文摘和千本电子书资源免费拿【乐购鲸选】公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值