Files
WebTools/CHANGELOG.md
T

11 KiB
Raw Blame History

Changelog

本文档记录面向使用者和维护者的重要变更。版本号以 package.json 为准。

0.3.0 - 2026-08-13

Added

  • 增加 RSA 签名验证工具,支持 PKCS#1 v1.5、RSA-PSS、SHA-256/384/512、SPKI/PKCS#1/X.509/N-E 公钥,以及 UTF-8、Hex、原始文件和 Intel HEX 有效数据。
  • RSA 签名验证的 Intel HEX 输入增加 Block 校验头模式;每个 block 前加入 8 字节二进制起始地址/数据长度,支持 Big Endian(默认)和 Little Endian。
  • RSA N/E 输入中的指数 E 按无符号 Hex 整数解析;10001 等奇数位输入会在左侧补零并正确识别为十进制 65537。
  • 验证结果展示有效/无效状态、算法、数据来源与长度、数据 Hash、签名长度、RSA 公钥规格、SPKI SHA-256 指纹和实际密码学实现;证书仅提取公钥及展示元数据,不验证证书链。

Changed

  • RSA 签名验证工具默认选择 RSA-PSS;Hash 仍默认使用 SHA-256,Salt Length 默认取 Hash 长度与当前模数编码上限中的较小值。
  • CRC 与固件 Hash 的已选文件摘要现在支持直接拖入新文件,也保留“更换文件”和“清空”操作;RSA 签名验证的文件模式使用同一交互。
  • 三个工具共用文件选择/摘要控件和事务式 Worker 生命周期管理,同时保持各自独立的算法、Worker 协议与页面状态。

Fixed

  • 更换文件时先在独立候选 Worker 中完成解析;无效文件、解析错误或候选 Worker 异常不会再清除当前文件和已有计算结果。

Verification

  • 20 个测试文件、152 条 Vitest 测试通过;新增 RSA PKCS#1 v1.5/PSS 三种 Hash、PEM/证书/N-E 公钥、奇数位 E 左侧补零、签名编码、PSS 盐长、1024 位 SHA-512 边界及自动盐长竞态、空消息、篡改签名、原始文件/Intel HEX 有效数据、大小端 Block 校验头验签语义、受限 Hex/UTF-8 输入及文件 Worker 生命周期覆盖。
  • Vue/TypeScript 类型检查、Vite 生产构建和 Git 差异规范检查通过。
  • CRC、固件 Hash 与 RSA 签名验证在桌面、中间宽度和 390×844 移动端视口下完成真实浏览器回归;默认 RSA-PSS/SHA-256/Salt 32、N/E 输入、PSS 1024 位 SHA-512/Salt 62 验签、文件选择与替换均正常,无横向溢出或应用控制台错误。

0.2.1 - 2026-08-10

Fixed

  • Base64 解码现在拒绝 TQ=、TWE== 等长度不完整的显式填充,同时继续接受规范的无填充 Base64 URL 输入。
  • XML 校验改为识别浏览器专用解析错误命名空间,合法的 <parsererror> 用户元素不再被误判为解析失败。
  • favicon、Web App Manifest 和其他稳定文件名资源不再使用一年不可变缓存;只有带构建指纹的 dist/assets/ 文件使用长期 immutable 缓存。

Security

  • 带 Fetch Metadata 的导航配置写入现在只接受 Sec-Fetch-Site: same-origin,同时拦截 same-site 与 cross-site 浏览器跨源请求。无该请求头的非浏览器客户端仍受支持,因此隐藏设置路径仍不构成身份认证。

Verification

  • 120 条 Vitest 测试通过,新增 Base64 显式填充、XML parsererror 合法元素、静态资源缓存分类和 same-site 跨源写入回归覆盖。
  • Vue/TypeScript 类型检查、Vite 生产构建、Git 差异规范检查和 Windows PowerShell 启动脚本语法检查通过。
  • 11 个页面在 1440×900、900×900 和 390×844 三种视口完成真实浏览器回归;深浅主题无横向溢出或控制台警告/错误。

0.2.0 - 2026-08-09

Added

  • AES-CMAC 增加 AES-192 和 AES-256 密钥长度,保留 AES-128 默认值,并增加 NIST SP 800-38B 已知向量。
  • 服务端为每个响应生成独立的 128 位 CSP nonce,使 Cloudflare JavaScript Detections 无需 'unsafe-inline' 便可与严格 CSP 兼容。

Changed

  • 安全随机数默认长度从 8 字节调整为 16 字节,并集中管理默认值和资源上下限。
  • CRC 自定义参数和结果表头改为中文在前、英文在后的双语标签;RefIn/RefOut 明确为输入/输出位反转,宽屏参数区不再压缩长标签换行。
  • CRC 与固件 Hash 的文件上传框统一悬浮、拖拽及键盘聚焦状态,并增加与后续控件的固定间距。
  • RSA 仅在 Web Crypto 不可用或失败时动态加载 node-forge 回退,降低现代 HTTPS 浏览器首次打开 RSA 工具时的下载量。
  • UTF-8 / Hex 的工具 ID、组件、字段前缀和固定路径统一为 utf8-hex 与 /tools/utf8-hex;旧导航配置中的 ascii-hex 会原位迁移,保留分类和排序。
  • 侧边栏移除无功能编号,品牌副标题改为“本地工具箱”,共享控件统一键盘焦点环和禁用态。
  • 工具管理路径调整为 /tools/setting;所有表单字段补充唯一 id 和稳定 name。

Security

  • 随机数增加最小/最大长度、安全随机源缺失及随机源异常的失败关闭测试,不使用普通伪随机回退。
  • CSP 仍禁止任意内联脚本和第三方脚本;Cloudflare Web Analytics 保持为部署层可选功能,不加入应用代码。
  • RSA 密钥生成增加异步请求版本保护,组件卸载或状态失效后,旧结果不会覆盖当前页面状态。

Verification

  • 116 条 Vitest 测试通过,覆盖 AES-128/192/256 标准向量、安全随机源失败关闭、RSA 动态回退、CSP nonce 强度及唯一性、固定工具路径、导航 ID 迁移、默认分类顺序、Intel HEX 有效数据分配上限、并发导航写入、CRC 参数防御和表单字段标识约束。
  • Vue/TypeScript 类型检查、Vite 生产构建和 Windows PowerShell 启动脚本语法检查通过。
  • 11 个页面在 1440×900、900×900 和 390×844 三种视口完成真实浏览器检查;深浅主题无横向溢出或控制台警告/错误。

0.1.0 - 2026-08-09

Added

  • 增加统一页面介绍,不列出具体工具或生成路由专属内容。

Documentation

  • 明确标准 HTML description 和同文的 og:description 分享兼容性契约,不设置自定义分享图、其他 Open Graph、平台抓取器、平台专用字段或包含用户数据的动态内容。

Verification

  • 87 条 Vitest 测试通过,页面元数据测试覆盖标准 description、唯一允许的 og:description、Manifest 描述、favicon 回退入口和无自定义分享图约束,并增加发布版本跨文件一致性检查。
  • Vue/TypeScript 类型检查和生产构建通过。

0.0.6 - 2026-08-08

Added

  • 增加与侧边栏品牌一致的浏览器图标体系:SVG、内含 16/32/48 像素帧的 ICO、180 像素 Apple 图标、192/512 像素 Web App 图标、512 像素 maskable 图标及 Web App Manifest。
  • 增加统一的 Windows PowerShell 启动与更新脚本,提供固定的生产配置、Git 快进更新、锁定依赖重装和构建后启动流程。
  • 增加 Windows Server 非 Docker 部署、启动和更新说明。
  • 增加独立的固件 Hash 工具,计算 Intel HEX 总有效数据和各 block 的 SHA-256 / SHA-512。
  • 增加 8 字节二进制 Block 校验头模式,头部包含 32 位绝对起始地址和 32 位数据长度,默认 Big Endian,并支持 Little Endian。

Fixed

  • 修复 Docker 构建未复制 public/ 资源的问题,并为 .webmanifest 增加标准响应类型。
  • Intel HEX 解析器增加全部非空记录上限、显式 uint32 地址空间检查和无符号扩展地址运算,拒绝越过 0xFFFFFFFF 的数据。
  • 固件 Hash 在普通 HTTP 局域网访问时增加本地 SHA-256/SHA-512 回退,不再依赖 SubtleCrypto 必须可用。
  • 生产服务在监听端口前检查 dist/index.html,缺少构建产物时立即给出构建命令,不再启动后按请求重复返回 500。
  • 修复固件 Hash 和安全随机数模式选择框宽度过大,以及 801-1040 像素中间宽度下 CRC 参数区可能横向溢出的问题。
  • 修复 Windows 脚本无参数运行时直接启动旧 dist、容易被误认为已完成更新的问题;现在交互启动会明确选择启动、更新并启动、仅更新或退出。

Documentation

  • 明确应用图标资源契约,并记录不启用 Service Worker、离线缓存和冗余旧平台图标的边界。
  • 补充 dist/index.html 缺失、Node 进程未重启、浏览器页面未刷新和前台 PowerShell 退出等启动故障排查说明。
  • 将 Node、Docker Compose、容器健康检查、Windows 脚本和示例配置的生产默认端口统一为 9000。
  • 增加通用 README.md 入口并强化 AGENTS.md 新会话接手流程,便于其他 AI 在不依赖历史对话的情况下继续维护。
  • 完善英文项目入口与中文权威文档,补充核心工具行为、异步竞态、版本文件、Windows 单 EXE 评估和发布边界。
  • 扩充 AGENTS.md 的工具扩展、Intel HEX 安全、响应式 UI、部署发布和 Git 操作约束。

Verification

  • 85 条 Vitest 测试通过,新增标准 SHA 向量、Block 头大小端、地址绑定、最高 uint32 地址、地址溢出、控制记录边界、无 Web Crypto 回退、生产构建预检、部署配置一致性和应用图标完整性覆盖。
  • Vue/TypeScript 类型检查和生产构建通过。

0.0.5 - 2026-08-07

Changed

  • CRC 文件读取、Intel HEX 解析和 CRC 计算统一放入独立 Web Worker,页面只保留文件摘要和结果。
  • 设置页排序操作提取为可测试的纯函数,并增加加载就绪状态。
  • 工具目录、默认导航、图标注册和懒加载组件增加运行时及自动化一致性检查。
  • Node.js 最低版本明确为 22.12.0,增加 typecheck 和统一的 npm run check 门禁。
  • 补全生产依赖版本与许可证说明。

Fixed

  • 修复 CRC 更换文件、重新计算及旧 Worker 响应覆盖当前状态的竞态问题。
  • Intel HEX 增加文件、记录数和 block 数限制,并降低记录合并时的内存占用。
  • PNG 在浏览器解码前校验签名、IHDR、文件大小、尺寸和总像素;清空或更换图片后忽略旧转换结果。
  • ICO 在创建 Canvas 前校验并规范化尺寸。
  • 修复设置页首次加载时保存按钮可能被错误启用的问题。
  • 修复缺失 JS/CSS 被错误返回 index.html 和 200 状态的问题。
  • 修复导航原子写入失败后可能残留临时文件的问题。
  • Base64 解码拒绝非规范尾部填充位。
  • 大型 JSON/XML 结果在语法 token 过多时降级为纯文本,避免创建过量 DOM 节点。
  • 移动端菜单增加正确的展开状态、动态标签和路由切换自动关闭行为。

Verification

  • 49 条 Vitest 测试通过,覆盖算法、边界、目录一致性、排序逻辑和真实 HTTP 服务。
  • Vue/TypeScript 类型检查和 Vite 生产构建通过。
  • npm 依赖审计结果为 0 个已知漏洞。
  • 桌面端和 390 x 844 移动端完成浏览器验收,9 个工具路由无横向溢出或控制台错误。