刘教链|BitCalc 2026.08.02版本发布:全面加固和优化

发布时间:2026-08-02

前文:《刘教链|BitCalc 2026.6.24 更新说明》 《刘教链|手搓了一个冷钱包 BTC 地址计算器》


版本号:2026.08.02 | 在线预览:https://bitcalc.blockcoach.com

BitCalc 是一个完全离线的比特币地址计算工具——单文件 HTML,浏览器打开即用,支持脑钱包、随机钱包、BIP39 助记词与 BIP84 SegWit 地址。本次 8 月 1 日、2 日连续两天发布重大升级:第一天加固安全内核,第二天打磨体验细节。这篇文章带你完整了解新版本。


一、为什么做这次升级

BitCalc 的随机数生成代码源自 bitaddress.org(2011 年的经典实现)。对其做了逐行代码审计,对照现代密码学标准后发现:时代的烙印依然存在——有些设计在当年合理,在 2026 年却可能成为风险。故而决定在上一版本基础上,进行全面加固和优化。


二、安全内核:随机数生成全面加固(8 月 1 日)

1. 私钥强度:永远是完整的 256 位

旧问题:选择 12 词助记词时,随机钱包只生成 16 字节(128 位)熵,且直接当作私钥使用——密钥强度只有标准的一半。

新方案:无论 12 词还是 24 词,经典路径(P2PKH/SegWit/WIF)私钥始终是完整的 32 字节(256 位)。12 词助记词按 BIP39 规范取初始熵的前 16 字节(128 位熵)——这是行业标准,而裸私钥则是满配的 256 位。

2. 随机源:彻底告别 Math.random()

审计发现,AES IV 生成、ISO 10126 填充等安全敏感路径仍在使用 Math.random()——它不是密码学安全随机数。新版本中:

  • 所有安全敏感路径全部改用密码学安全生成器crypto.getRandomValues 与熵池 PRNG 的混合)
  • Math.random() 仅保留在非密钥用途(如 UI 计数器)

3. 失败即关闭(fail-closed):宁可不出结果,绝不出弱密钥

旧行为:浏览器不支持 crypto.getRandomValues(如纯 HTTP 环境、老浏览器)时,工具静默回退到弱随机——用户毫不知情地拿到了弱私钥。

新行为:检测到无安全随机源时直接拒绝生成,并显示红色警告横幅,明确告知“请使用现代浏览器并通过 HTTPS 访问”。安全不是选择题,弱密钥等于没有密钥。

4. 熵池修复:播种数据永远生效

bitaddress.org 的原始实现有一个遗留缺陷(代码里写着 TODO: allow reseeding):ArcFour 熵池只初始化一次,如果播种发生在首次随机输出之后,鼠标/键盘收集的熵会被静默浪费

新版本实现 poolDirty 机制:任何新播种数据都会在下次输出前强制重新混入熵池——无论调用顺序如何,用户的熵永远不会白费。

5. 告别“晃动鼠标”时代

旧体验:必须先移动鼠标 200~455 次、看着进度条走满,才能解锁“生成”按钮——这是 2011 年浏览器 API 不完善时代的产物。

新体验

  • 点一下,立即生成。2026 年的浏览器自带操作系统级安全随机源(CSPRNG),不需要人工“聚熵”
  • 鼠标/键盘/高精度时间(performance.now() 微秒级)仍然被动混入熵池,作为零成本的纵深防御层——输出始终是 CSPRNG ⊕ 熵池 的混合,多一层保险,不多一分负担
  • 生成按钮旁新增实时熵混合指示器:脉冲圆点 + 累计从鼠标、键盘和高精度计时器收集的熵字节数,透明展示后台熵混合的活跃度

6. 脑钱包:密码熵实时评估

脑钱包(密码 → SHA256 → 私钥)是高风险用法——密码熵直接等于私钥熵,没有 KDF 拉伸的保护。新版本提供两道防线:

输入时:密码框上方实时显示评估——

  • 密码长度 + 熵估算(字符集 × 长度,自动检测并扣除弱密码模式,如重复、序列、键盘走位、常见密码库等)
  • 三档评级:<60 位弱 / 60-127 位一般 / ≥128 位强(128 位是密码学安全线)
  • 短于 30 字符的密码永远不能评“强”(与密码框提示一致)
  • 空密码也会立即警告——因为空密码真的可以直接生成

生成后:如果地址由 <128 位密码派生,输出区顶部显示红色/橙色警告横幅,明确告知“私钥易被暴力破解,请勿存入资金”。只警告、不阻止——工具如实告知风险,选择权在用户。


三、体验升级:UI 打磨与移动端(8 月 2 日)

1. 品牌:BitCalc 与 BC 徽章

Logo 保持 BitCalc(Bit橙色 + Calc白色),旁边新增橙色 BC 缩写徽章,建立品牌关联。副标题(“比特币地址计算器”)不再重复品牌名,在 PC 端位于 logo 右侧、移动端自动换行到下方。

2. 敏感信息遮罩:防肩窥

助记词、WIF 私钥、熵/种子 Hex 等 12 个敏感字段默认模糊遮罩,点击后显示,悬停有 🔒 提示。在地铁、咖啡馆等公共场所使用时不至于一眼泄露私钥。(说明:这是防肩窥保护,值始终在页面中——它防“被看到”,不防“被窃取”。请务必在只有一个人的私密环境中离线使用!)

3. 移动端:真正适配

根因修复:旧页面缺少 viewport meta,手机上看不清。新版本:

  • 加入 viewport 声明,页面按设备真实宽度渲染
  • 窄屏自动切换单列布局:五个功能标签页均分整行、表单纵向堆叠(标签一行、输入框全宽一行)、二维码单列居中、按钮全宽易点
  • 输入框 16px 字号,同时防止 iOS 聚焦时自动缩放页面

4. 页脚完善

  • 使用建议:“下载本页面后离线使用,以浏览器无痕模式打开”
  • 版本标识:“当前版本:2026.08.02”——以发布日期作为版本号,升级可追溯
  • 捐赠区独立于分隔线下,配 ☕ 图标

四、相比 bitaddress.org:改了什么、修了什么

BitCalc 的底层库继承自 bitaddress.org,但本次升级针对它的历史遗留问题做了定向修复与超越

项目 bitaddress.org(2011 设计) BitCalc 2026.08(新)
强制播种门禁 必须晃动鼠标 200~455 次才能解锁生成 一键生成;鼠标/键盘/高精度时间被动混熵
熵池重新播种 TODO: allow reseeding 从未实现——播种可能被早期随机调用静默浪费 poolDirty 机制:播种数据在任何时序下必然生效
无安全随机源(HTTP/老浏览器) 静默回退到弱随机(Math.random 池),用户毫不知情 fail-closed:直接拒绝生成 + 红色警告横幅
安全路径中的 Math.random() 捆绑的 cryptojs 中 randomBytes/ISO 10126 仍用 Math.random() 全部替换为 CSPRNG 混合生成器
密码熵提示 无任何评估,脑钱包风险全靠自觉 实时熵评估(长度+熵位,三档评级)+ 生成后低熵警告
私钥强度 默认 32 字节 随机钱包私钥始终 256 位(修复了 12 词模式仅 128 位的偏差)
敏感信息展示 明文直接展示 模糊遮罩 + 点击显示(防肩窥)
移动端 不支持 viewport + 单列布局,触控优化
密码熵评估阈值 128 位密码学安全线;<30 字符永不评强

总结:保留了 bitaddress.org 的正确内核(secp256k1、ArcFour+系统熵混合的架构),修复了它留了 15 年的 TODO,并淘汰了它在 2026 年已不再必要的历史包袱。


五、升级总览

维度 2026.08.01(安全内核) 2026.08.02(体验打磨)
密钥 私钥始终 256 位
随机源 移除 Math.random、fail-closed
熵池 poolDirty 重新播种 熵混合指示器
交互 移除强制播种进度条 移动端适配、敏感遮罩
脑钱包 密码熵评估 + 低熵警告
品牌/页脚 免责声明强化 BC 徽章、版本号、使用建议

六、使用建议

  1. 离线使用:下载 bitcalc.html 到本地,断网后打开(使用浏览器无痕模式)
  2. 安全环境:在线使用请通过 HTTPS;工具会在不安全环境显示红色警告并拒绝生成
  3. 纸质备份:生成的助记词/私钥务必抄写并密封保存,页面不保存任何数据,关闭即失
  4. 自检验证:页面内置自检页,25 项测试向量一键验证核心功能正确性

七、邀请预览

新版本已部署:https://bitcalc.blockcoach.com

建议体验路径:

  • 随机钱包 一键生成,观察熵混合指示器与 256 位私钥
  • 脑钱包 输入弱密码/强密码,观察实时熵评级与生成后警告
  • 手机浏览器 感受单列布局与触控优化
  • 自检页 运行 25 项测试向量

任何问题、建议,欢迎到 GitHub 提 issue:github.com/hmisty/bitcalc,或在社群直接反馈。


BitCalc 处于预览版阶段,无担保,使用风险自负。推荐使用AI辅助对代码进行独立审计。所有地址与私钥生成后,建议使用其他独立工具交叉验证。


免责声明:本文纯属教链个人主观认知分享,不构成任何投资建议。加密市场波动巨大,风险极高,请自行判断、谨慎决策、承担风险和后果。
加入教链会员:欢迎关注公众号并发消息「会员」或「VIP」了解详情。
点击延伸阅读👉教链内参|加息悬念落定之后,BTC吸筹区间与监管变局的双重奏