网页抓取 加密html(段时间基本思路整理工作笔记之加密、解密的流程设计)
优采云 发布时间: 2021-12-16 10:03网页抓取 加密html(段时间基本思路整理工作笔记之加密、解密的流程设计)
前言
这段时间在训练整理工作笔记,突然发现有些内容不适合直接公开分享,但也希望能发表一下。想看的可以正常浏览。所以需要html加密访问。另外,考虑到加密后的共享内容不适合搜索引擎检索其文本,因此文本内容也需要进行加密。所以我在互联网上搜索了任何相关的技术实现文章。然后我找到了这些技术博客或在线工具:
总而言之,虽然我找到了各种看似可用的实现,但是我并没有触及自己需求的痛点,所以我决定自己开发一个。
基本思想
其实我对接入的加密强度没有太多追求,我只需要以下几个特点:
对于这两个需求点,可以混合使用以下两种加密方式来实现:
页面加密和打包思路
读取需要加密的html文件的具体标签内容,用base64+xor加密,塞到可以访问的模板标签上进行密码验证,删除密文标签,重新拼接模板标签进入新的html。具体流程看代码,也比较直观
页面验证访问思路
访问者打开加密的html后,加密标签上会显示密码验证界面。如果密码输入错误,浏览器会弹出提醒您。如果密码输入正确,解密后的文本标签outHtml会直接替换这个密码验证标签的outHtml,此时浏览器会自动加载文本内容
密码验证思路
核心思想是提供一个前缀字符串(prefix_str)作为判断依据,最终流程如下:
加密/解密思路
从html中提取出需要加密的text标签后,加解密的流程设计如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
html encrytion html decrytion
+--------------+ +--------------+
| | | |
|input html tag| |input html tag|
| | | |
+--------------+ +--------------+
| |
| |
| |
+-------v--------+ +---------v---------+
| | | |
| xor encryption | | base64 encryption |
| | | |
+----------------+ +-------------------+
| |
| |
| |
+--------v----------+ +-------v--------+
| | | |
| base64 encryption | | xor encryption |
| | | |
+-------------------+ +----------------+
| |
| |
| |
+------v--------+ +------v--------+
| | | |
|output html tag| |output html tag|
| | | |
+---------------+ +---------------+
技术选型
该工具基于nodejs技术栈实现。经过比较,选择了以下第三方库:
实现后续迭代的代码
由于我的博客目前是使用hexo发布的,所以需要将这个加密逻辑集成到一个hexo插件中。期间发现了一个同类型的插件hexo-blog-encrypt。这个hexo-blog-encrypt基本满足我的初步需求。,但是因为是我完成base64+xor加解密库和html加密打包工具后发现的,打算集成到hexo中,本着不断学习的态度,自己重新写了一遍。一个OMG,如果你有兴趣,去hexo-encrypted-package-html