所谓“加密网页”实为混淆或禁用右键/选中,非真正加密;真实源码可通过Ctrl+U查看原始HTML,或F12进入Elements面板查看动态渲染后的DOM结构,再结合Console执行atob()逐层还原Base64混淆内容。

加密网页的源码根本不是“加密”,而是混淆或禁用右键
浏览器里看到的所谓“加密网页”,99% 没有真正加密——HTML 和 JS 本质必须发给浏览器执行,服务端不可能把密文发过去再让浏览器解密。实际手段就三种:document.write 覆盖、eval(atob(...)) 动态解码、或用 oncontextmenu 禁右键+onselectstart 禁选中。它们都不防开发者工具,只防小白随手点右键。
绕过禁右键和禁选中,直接看真实 HTML 结构
禁右键只是屏蔽了菜单触发事件,不影响开发者工具本身。别浪费时间找“解密工具”,直接:
- Windows / Linux 按
Ctrl+U,Mac 按Cmd+U,强制打开原始 HTML 源码页(哪怕页面写了oncontextmenu="return false") - 或者按
F12→ 切到Elements面板,这里显示的是 DOM 树,已执行 JS 修改后的最终结构,比原始源码更有参考价值 - 如果页面用
document.write或innerHTML动态生成内容,Elements面板里展开就能看到,Sources面板里搜write、innerHTML、atob、eval就能找到关键逻辑
遇到 Base64 + eval 的 JS 混淆,手动还原最稳
常见模式是:eval(atob("PGgxPue7hOacie..."))。这种不能靠在线解密网站——很多会误判或截断。正确做法是:
- 在
Console面板里直接运行atob("PGgxPue7hOacie..."),得到明文 HTML/JS 字符串 - 如果字符串太长被截断,改用
copy(atob("..."))复制出来再粘贴到编辑器里看 - 注意:有些混淆会嵌套多层,比如
atob(atob(...))或拼接字符串,逐层atob即可,不用猜算法 - 还原后若要修改,别改原混淆串——直接在
Elements面板里右键对应节点 →Edit as HTML临时调试;要持久修改,就复制还原后的代码,替换原始文件里那段eval(atob(...))
改完怎么生效?重点盯住这三件事
很多人改了以为完事,一刷新还是老样子,问题几乎全出在这三处:
- 你编辑的文件路径 ≠ 浏览器当前加载的文件路径。比如地址栏是
http://localhost:5173/about,但你改的是桌面的about.html—— 它根本没被服务器读到 - 用了 Vite/Vue CLI 等构建工具,改的是
src/下的文件,但浏览器访问的是dist/或开发服务器内存里的产物;必须跑npm run dev才能热更新 - 浏览器缓存了旧 JS,尤其是混淆脚本常被强缓存。改完务必
Ctrl+F5(Windows)或Cmd+Shift+R(Mac)硬刷,清掉所有资源缓存
混淆代码本身不难还原,难的是还原后找不到它真正从哪来、改了到底有没有进到浏览器里。路径、构建流程、缓存——这三个点漏一个,前面所有操作都白做。











