生成基于工作量证明(Proof of Work)的验证码,替代ReCAPTCHA/hCaptcha。纯前端SHA-256计算,零数据上传,完全隐私优先。
零依赖·可离线使用参数设置
挑战参数
difficulty:4
target prefix:0000
求解进度
集成代码
复制以下代码集成到您的网站中:
PoW验证码生成器能做什么?
PoW验证码生成器是一款免费的在线工具,用于生成基于工作量证明(Proof of Work)的验证码方案,作为ReCAPTCHA和hCaptcha的隐私优先替代方案。本工具让客户端通过计算SHA-256哈希来证明不是自动化脚本,完全不需要收集用户数据、不需要第三方服务,所有计算都在浏览器本地完成。
核心功能
- 自定义难度:设置1-6位前导零难度,控制计算时间(1位≈瞬间,6位≈数十秒)
- 实时求解:在浏览器中实时执行PoW计算,显示进度和结果
- 代码生成:自动生成客户端和服务端验证代码,可直接集成到项目中
- SHA-256哈希:使用Web Crypto API进行安全哈希计算,无需第三方库
- 零数据上传:所有计算完全在浏览器本地完成,不发送任何网络请求
使用教程
1. 设置参数:调整难度滑块(推荐4位,约1-3秒计算时间)和挑战字符串长度。
2. 生成挑战:点击「生成挑战」按钮,工具会生成随机的challenge字符串。
3. 执行求解:点击「开始求解」,浏览器将通过SHA-256哈希搜索找到满足难度要求的nonce值。
4. 复制代码:复制生成的客户端和服务端代码,集成到您的网站中实现PoW验证码。
应用场景
场景1:替代ReCAPTCHA
对用户隐私有要求的网站,使用PoW验证码替代Google ReCAPTCHA。不追踪用户行为、不收集数据、不依赖第三方服务,完全自托管可控。
场景2:API防滥用
为公开API添加PoW验证,要求客户端在每次请求前完成一定量的计算工作,有效防止暴力请求和DDoS攻击,同时不影响正常用户。
场景3:表单防垃圾
在联系表单、评论系统、注册页面等场景中集成PoW验证码,防止自动化脚本批量提交垃圾信息。
扩展知识
工作量证明(Proof of Work, PoW)最初由Adam Back在Hashcash系统中提出,用于防止电子邮件垃圾信息。其核心思想是:要求请求方执行一定量的计算工作(找到满足特定条件的哈希值),从而使得大规模攻击在经济上不可行。比特币也采用了类似的PoW机制来保护区块链安全。与传统的图片验证码不同,PoW验证码对用户完全透明——计算在后台自动完成,用户无需进行任何交互操作。
❓ 常见问题
PoW验证码和传统验证码有什么区别?
传统验证码(如ReCAPTCHA)需要用户识别图片或跟踪行为数据,存在隐私泄露风险。PoW验证码通过让客户端执行一定量的计算工作来证明不是自动化脚本,完全不需要收集用户数据,隐私安全。
PoW验证码安全吗?
安全。PoW验证码利用SHA-256哈希算法的计算不可逆性,客户端必须通过暴力搜索找到满足难度要求的Nonce值。增加难度可以指数级增加攻击者的计算成本,而对普通用户来说计算时间可接受(通常1-5秒)。
如何在自己的网站集成PoW验证码?
本工具生成的代码可以直接嵌入到任何网页中。基本流程:1)服务端生成challenge字符串;2)客户端执行PoW计算找到nonce;3)客户端提交challenge+nonce给服务端验证;4)服务端用一次SHA-256验证即可。
PoW验证码对移动设备友好吗?
友好。现代移动设备的CPU性能足够在合理时间内完成PoW计算。建议难度设为4-5个前导零(约1-3秒计算时间),对移动设备完全可接受。
数据会上传到服务器吗?
不会。所有PoW计算都在浏览器本地完成,使用Web Crypto API进行SHA-256哈希计算。不收集任何用户数据、不跟踪行为、不需要第三方服务。
PoW验证中要等多久?
PoW(Proof of Work,工作量证明)验证需要让浏览器反复计算 SHA-256,直到哈希值以指定数量的 0 开头。难度每增加 1 位前导零,平均需要尝试的次数就乘以 16。因此难度与耗时大致关系如下:
| 难度(前导零) | 平均尝试次数 | 大致耗时 |
|---|---|---|
| 1 位 | 约 16 次 | 瞬间 |
| 2 位 | 约 256 次 | 瞬间 |
| 3 位 | 约 4,096 次 | 0.1 秒以内 |
| 4 位(推荐) | 约 65,536 次 | 约 1–3 秒 |
| 5 位 | 约 104.9 万次 | 约 5–20 秒 |
| 6 位 | 约 1677.7 万次 | 可能超过工具 500 万次上限,建议降低难度 |
注意:以上为平均值,实际尝试次数是随机的,可能少于也可能多于平均值;相同难度在不同设备上的耗时也可能相差数倍。
为什么PoW验证很慢或卡住?
- 难度设得太高:5 位、6 位的计算量是 4 位的 16 倍、256 倍,这是"很慢"最常见的原因。日常防护使用 4 位即可。
- 页面切到后台:浏览器会限制后台标签页的定时器(setTimeout)执行频率,导致进度看起来停滞。请保持页面在前台。
- 设备性能或电量限制:低端手机、省电模式、CPU 降频都会明显拉长计算时间。
- 循环分批计算:本工具为不阻塞界面,每次批量计算 1000 次哈希后再让出主线程,因此进度条是一段一段推进的,并非卡死。
- 达到尝试次数上限:工具最大尝试 500 万次,若随机运气差未命中,会提示"达到最大尝试次数",此时降低难度重试即可。
PoW验证卡住了怎么办?
- 把难度从 5–6 位降到 4 位,重新点击「开始求解」。
- 保持该标签页在前台,不要最小化浏览器或切换到其他标签。
- 关闭省电/节能模式,或将手机插上充电器后重试。
- 刷新页面重新生成挑战(challenge)后再试,避免使用旧的 nonce 状态。
- 使用较新的 Chrome、Edge、Firefox 或 Safari 等现代浏览器。