压缩和混淆

随着Js文件体积的增大和前后端交互增多,为了加快http传输速度并提高接口的安全性,出现了很多的压缩工具和混淆加密工具。

**代码压缩:**在对用户体验造成影响的因素中,最重要的是"网页打开速度",即资源加载速度和页面渲染速度。资源加载速度的常用优化方法是压缩,压缩的对象包括HTML文档、图片和JavaScript文件等。压缩后的文件体积相对较小,不仅有利于网络传输,还能起到保护代码的作用。这是因为在压缩过程中会删除注释、空格和换行符等元素,将多个JavaScript文件合并以及缩短变量名。

随着浏览器和各大IDE推出代码格式化功能,文件压缩对代码的保护就被削弱了。为了更好地保护代码,开发者想到了代码混淆的办法。

**代码混淆:**常用的混淆方法有正则替换、代码编码和代码复杂化等。为了防止有心人在浏览器中调试,开发者甚至会在代码中加入一些能够干扰调试的代码。

  • 正则替换之变量名替换:这实际上是用简短的字母替换方法中的变量名,也可以在此基础上增加空格和换行符的删除操作。

  • 正则替换之进制替换:除了能解析Base64编码外,浏览器还能解析十六进制的字符。将原代码中的字符串和数字转为十六进制,并删除空格和换行符,最终将代码的可读性变差。

  • 代码编码之Base64:浏览器会自动解析Base64编码后的内容,我们可以利用这一特点实现"掩人耳目"的混淆效果。

  • 代码编码之AAEncode与JJEncode:AAEncode能将JavaScript代码转换为颜文字,而JJEncode则将代码转换为"$"、"_"、"+"组成的字符。

  • 代码复杂化之访问符:有些混淆方法则是改变对象访问符,如将原本用"."访问对象的方式改为用"[]"访问。

  • 代码复杂化之Packer:Packer是代码混淆中常用的方法,它能将原代码变得复杂,降低可读性。

**代码加密:**将JavaScript代码转成人无法阅读或解析的代码,如借用WebAssembly技术,可以直接将JavaScript代码用C/C++实现,JavaScript调用其编译后形成的文件来执行相应的功能。

要注意的是,无论混淆手段多么复杂,都要确保代码能够正确执行。

相关推荐
好看资源平台6 小时前
网络爬虫——爬虫项目案例
爬虫·python
躺平的花卷8 小时前
Python爬虫案例八:抓取597招聘网信息并用xlutils进行excel数据的保存
爬虫·excel
爱分享的码瑞哥9 小时前
Python爬虫中的IP封禁问题及其解决方案
爬虫·python·tcp/ip
不做超级小白10 小时前
工欲善其事,必先利其器;爬虫路上,我用抓包
爬虫
Smartdaili China11 小时前
如何在 Microsoft Edge 中设置代理: 快速而简单的方法
前端·爬虫·安全·microsoft·edge·社交·动态住宅代理
好看资源平台13 小时前
网络爬虫——综合实战项目:多平台房源信息采集与分析系统
爬虫·python
Tech Synapse1 天前
Python网络爬虫实践案例:爬取猫眼电影Top100
开发语言·爬虫·python
数据小爬虫@1 天前
利用Python爬虫获取淘宝店铺详情
开发语言·爬虫·python
B站计算机毕业设计超人1 天前
计算机毕业设计SparkStreaming+Kafka新能源汽车推荐系统 汽车数据分析可视化大屏 新能源汽车推荐系统 汽车爬虫 汽车大数据 机器学习
数据仓库·爬虫·python·数据分析·kafka·数据可视化·推荐算法
易辰君1 天前
【Python爬虫实战】深入解析 Scrapy 爬虫框架:高效抓取与实战搭建全指南
开发语言·爬虫·python