本文目录导读:

“页面加密工具”这个概念通常指两种不同的东西,具体取决于你想加密的对象:
- 对网页的HTML/CSS/JS代码进行加密(防止他人查看或复制你的网页源码)。
- 对网页的内容进行访问权限加密(设置密码才能查看页面)。
下面分别介绍这两种情况的主流实现方法。
代码加密(防查看/防复制)
如果你不希望别人通过右键“查看源代码”或F12很容易地看到你的网页源码(例如HTML结构、JS逻辑),可以使用以下工具或方法。但请注意:任何客户端加密(在浏览器里执行的加密)都是不安全的,只能提高破解门槛,无法完全阻止有决心的人。
使用在线工具一键加密
这是最省事的方法,很多网站提供在线JavaScript/HTML加密服务。
- 推荐工具:
HTML Encryption Tool、JavaScript Obfuscator、JScrambler - 原理: 将你的HTML或JS代码进行以下处理:
- 混淆: 将变量名、函数名改为无意义的字符(
a、b、c)。 - 编码: 将代码转为Unicode或Base64格式,然后用
eval()或document.write()解码执行。 - 压缩: 去除空格和注释,让代码变成一行。
- 混淆: 将变量名、函数名改为无意义的字符(
- 简单HTML加密示例(使用工具后的效果):
你的原始HTML可能被加密成类似这样(伪代码):
<script> // 加密后的代码 var _0x1234 = ['aW5uZXJIVE1M', 'bG9jYXRpb24=']; // ... 更复杂的混淆代码 ... document.getElementById('content').innerHTML = decodeURIComponent('%E4%BD%A0%E5%A5%BD...'); </script> - 如何操作:
- 在搜索引擎搜索 "HTML加密工具 在线"。
- 把你的完整HTML代码粘贴进去。
- 点击加密,复制输出的代码,替换掉原来的HTML文件。
使用JavaScript进行“软加密”
在页面上加一段JS代码,禁止右键、禁止F12、禁止选择文本,这在大部分浏览器上有效,但无法阻止有经验的人(比如直接禁用JS或使用浏览器的无头模式)。
- 示例代码:
<script> // 禁止右键菜单 document.addEventListener('contextmenu', function(e) { e.preventDefault(); alert('禁止右键查看源代码'); }); // 禁止F12 document.addEventListener('keydown', function(e) { if (e.key === 'F12' || (e.ctrlKey && e.shiftKey && e.key === 'I')) { e.preventDefault(); alert('禁止打开开发者工具'); return false; } }); // 禁止选中文字 document.addEventListener('selectstart', function(e) { e.preventDefault(); }); </script>
专业的混淆工具(推荐)
如果你懂一点前端,可以使用专业的JS混淆库,效果比在线工具好很多。
- 工具:
Terser(配合Webpack/Gulp)、JavaScript Obfuscator(Node.js库) - 效果: 代码逻辑会被打乱、控制流扁平化、字符串加密,很难逆向。
加密(设置访问密码)
如果你希望某个页面需要输入密码才能查看内容(常用于企业内部资料、付费内容、私人博客等),有更可靠的前后端方案。
前端“魔术”加密(不推荐用于重要内容)
纯粹用前端JS实现,只校验密码是否正确,正确则显示内容。注意:密码和加密逻辑完全暴露在源代码中,懂技术的人轻松破解。
- 原理: 页面默认只显示一个密码框,输入正确密码后,JS解码隐藏的内容并显示。
- 示例(非常简单,不安全):
<!DOCTYPE html> <html> <head> <script> // 密码校验(密码明文或MD5值都在代码里!) function checkPassword() { var password = document.getElementById('pwd').value; if (password === 'mypassword') { // 密码直接写在JS里!很不安全。 document.getElementById('content').style.display = 'block'; document.getElementById('password-form').style.display = 'none'; } else { alert('密码错误!'); } } </script> </head> <body> <div id="password-form"> <input type="password" id="pwd" placeholder="请输入密码"> <button onclick="checkPassword()">确认</button> </div> <div id="content" style="display:none;"> <!-- 这里是加密后的真正内容 --> 这里是秘密内容:<strong>你成功了!</strong> </div> </body> </html>
使用专业的第三方工具(推荐)
这些工具提供后端验证,密码不会暴露给用户,比纯前端方案安全得多。
- PageCrypt: 一个开源工具,可以加密整个HTML文件,原理是用AES-256加密内容,用户输入密码后在浏览器端解密,密码本身不通过网络传输。但仍存在暴力破解风险。
- 使用方法: 下载
PageCrypt工具,运行命令行:pagecrypt index.html output.html,然后输入密码即可,生成的output.html会包含一个密码输入框。
- 使用方法: 下载
- Staticrypt: 类似PageCrypt,专门加密静态HTML页面,使用AES加密,密码在客户端验证。
- 使用方法: 安装Node.js后运行
npx staticrypt index.html mypassword,会生成一个加密的HTML文件。
- 使用方法: 安装Node.js后运行
- WordPress插件: 如果你使用WordPress,可以使用
Ultimate Member、Simple Membership、User Access Manager等插件来设置页面访问权限,通过用户名密码登录。
总结建议
| 你的目标 | 推荐方案 | 安全性 |
|---|---|---|
| 防止普通用户复制/查看源码 | 在线HTML/JS加密工具 + 禁止F12/右键 | 较低(防君子不防小人) |
| 保护核心JS逻辑不被轻易窃取 | 专业混淆工具(Terser, JScrambler) | 中等(提高破解成本) |
| 设置页面访问密码(如朋友间分享) | Staticrypt 或 PageCrypt | 中等(密钥在本地,不联网) |
| 企业级、付费内容访问控制 | 后端数据库 + 登录系统(如PHP+MySQL, JWT) | 高 |
重要提醒: 任何“客户端加密”(加密和解密都发生在用户浏览器上)都不是绝对安全的,用户的浏览器必须下载解密密钥(或逻辑)才能展示内容,而这个密钥可以被技术用户提取出来,如果你要保护极其敏感的信息,请务必使用后端认证(需要服务器配合)。
标签: 加密