Skip to content

Latest commit

 

History

History
154 lines (109 loc) · 18.4 KB

File metadata and controls

154 lines (109 loc) · 18.4 KB

更新日志

本文档记录完整更新历史。README.md「更新日志」仅保留最新版本变更。

v0.1.5

新增功能

【可魔改算法】每个细分算法都增加了可编辑算法的按钮,给你轻松魔改!编辑器换装 CodeMirror 6,支持行号、语法高亮、查找替换、撤销重做、括号匹配,右边还能对照当前算法的实现源码,双栏独立调字号、可拖宽。编辑器按需加载,不拖慢首页。

【快速换算功能】一键换算各类单位!数据量(SI/IEC 双制)、速率、时间、频率、角度、油耗、金额、日期,改任意一格其余即时联动。程序员计算器(手写解析器,不走 eval),支持位运算、移位、循环移位、0x/0b/0o 字面量。人民币金额大写(负数、分位、超大数都行)。日期计算(纯数字自动按纪元秒对照解读)。机器码 ⇄ 汇编互转(Keystone/Capstone WASM 本地运行,不联网)。

【字符显示器全面翻新】渲染区整体重排,新增 Markdown 渲染、数学公式(KaTeX 本地渲染,$…$ 与 $$…$$ 都认)、天珩字形开关。表意描述编码(U+529B → 力)常驻显示。IDS 表意拆字上线:正查汉字分解树、反查部件拼字、字与 IDS 串双向互转,长结果分页翻阅。

【SVG/PNG 导出所见即所得】导出图内嵌公式排版规则和实际用到的字体。以前公式导出会塌成色块,现在导出图什么样,页面上就是什么样。

【20 种语言全覆盖】新增藏文、维吾尔文、壮文(拉丁)、传统蒙古文四门民族语言,全站 1263 条文案逐条到位。阿拉伯语、波斯语、希伯来语、乌尔都语四个从右到左的语言,整站镜像排版,方向感知的箭头图标同步翻转。

【算法扩充至 608 个操作】新增 18 个注册操作,其中 15 个由参考实现转写为纯前端 JS,开箱即用。DeepSound 音频隐写提取修复上线(此前一加载就崩,完全不可用)。ByteStatCNN 编码识别模型移植到本地推理,接入一键解码打分,与 Python 原版对拍误差仅百万分之几。

【环境面板一键重置】底部新增红色按钮,一键清空本地配置、方案、缓存、Service Worker 等全部状态,回到刚装好的样子。带二次确认,防手滑。

【窄屏/RTL 适配】窄屏二级界面、RTL 语言全站镜像布局与方向感知箭头。

修复 BUG

【离线缓存】修复了网页版(GitHub Pages 子路径部署)下「按需资产用过之后断网仍不可用」的问题——回填判断误按根路径比对,字库、WASM 引擎、非中英语言包等按需资产在网页版上没有真正进入离线缓存。本地解压版不受影响。

【解压卡死】Chromium 系浏览器对部分合法压缩数据会无限等待(reader.read() 永不返回),页面一直空白、不报错。所有解压入口统一加了 2 秒保险,等不到结果立即切换到内置备用解压器。ZIP、GZIP、Base64 压缩数据、NBT 存档、归档分析全部覆盖。

【编码图竖排错乱】窗口宽度 720-860px 区间时,编码图弹窗里的文字会莫名其妙竖着排——根子是几条全局 CSS 样式泄漏到弹窗外部。已从源头作用域化,任何窗口宽度下都正常。

【后台任务假死】极端情况下后台计算线程启动失败,任务会永远显示「进行中」。现在有多层降级兜底:Worker 出问题自动降级到主线程执行,总能拿到结果或明确的报错。

【猫脸暴破】修复了拖入图片后暴破必崩的问题——图片字节其实已经传进来了,但暴破入口没接住(单次猫脸变换接得住,所以「猫脸能用、暴破崩」)。现在浏览器里优先走系统图像解码,JPEG / BMP / 调色板 PNG 全支持;不行再落内置纯 JS 解码器,两层都失败会把原因一起报出来。纯 JS 解码器另修三处:调色板越界索引不再整张报错(与浏览器同款容错)、缺调色板给出明确提示、1/2/4 位深小图的行宽算错导致的解码错乱。暴破拼图每格下方新增 a2b3t4 式参数标签,一眼看出哪组参数还原成功。

【换算类别互相污染】在单位换算里选了「油耗」分组,切到别的换算页再回来,会被带跑。已按标签页隔离记忆,各切各的。

【编辑器选区越界崩溃】部分老式换行符(CRLF)的源文件在恢复内置模板时,CodeMirror 换行规范化后文档变短,setCode 设置的选区位置超出文档范围,直接抛异常。已统一规范化换行处理,CRLF 文件不再触发崩溃。

【超长文本穿出卡片】字符显示器里超长文本会穿出卡片边界。已改为卡片内滚动,不影响布局。

【其他小修】编辑器查找面板换成中文按钮;致谢页补全 CodeMirror 6(MIT)与 Capstone(BSD-3)许可信息。

优化功能

【体积瘦身】完整离线包从 884 项 / 60MB 精简到 506 项 / 9.6MB,体积下降 84%。四平面大字库(31.2MB)、WASM 引擎(6.7MB)、IDS 数据、编码对照图、KaTeX 等重资产改为「用到再缓存」——联网时用过一次,断网后照样能用。Service Worker 安装时序重构,断网状态下核心界面刷新后依然可靠可用。

【性能优化】CodeMirror 编辑器主包约 800KB 改为点开才加载(首屏零加载,不拖慢首页)。字符显示器关闭即释放十多万 DOM 节点、编辑器实例、事件监听全量退订,反复开关不会越用越卡。

【质量收口】608 项操作全部通过结构校验与编解码一致性体检,无孤儿操作。20 种语言 × 1263 条文案同构校验全绿,零缺失零多余。全部语言做了一轮完整语义审校——不止机器查错,逐句看误译、语法、术语统一、敬语——修复 200 多处。重复定义死代码清理 743 行。真浏览器回归 10 个套件全部通过。

v0.1.4(2026-08-11)

🆕 国密现代化(北极星首仗:通用密码学工具箱 + 权威源标准)

  • SM4 全工作模式:ECB/CBC → ECB/CBC/CFB/OFB/CTR + GCM。GCM 为纯 JS 实现(WebCrypto 无 SM4):GHASH/GCTR/J0 照 SP 800-38D,块加密换 SM4,输出 ciphertext‖tag(16B),支持 AAD(register 层已暴露)。工作模式依据 GB/T 17964-2021《分组密码算法的工作模式》。
  • SM2 完整运算:从「仅结构识别」升级为签名/验签(GB/T 32918.2-2016)+ 加密/解密(GB/T 32918.4-2016)+ 密钥交换(GB/T 32918.3-2016)。曲线 sm2p256v1(GB/T 32918.5-2017),KDF/ZA 照标准,加载自检对拍官方示例向量(签名 r/s、加密密文 C1||C3||C2 逐字节)。密文支持双序:C1||C3||C2(GB/T 32918.4)与 C1||C2||C3(GM/T 0009-2023)。随机数仅接受系统 CSPRNG,不提供弱随机降级;私钥、公钥、密文格式与 KDF 长度均做标准边界校验。
  • 国密标准引用现代化:SM4→GB/T 32907-2016、SM3→GB/T 32905-2016、ZUC→GB/T 33133.1-2016、SM2→GB/T 32918-2016、SM9→GB/T 38635.1-2020(全部标注前身 GM/T 2012 转化关系);SM2 密文顺序规范更正为 GM/T 0009-2023(原误引 GM/T 0009-2012)。

配方链触摸与搜索交互

  • 触摸拖拽:移动设备可从左侧菜单或顶部搜索结果长按 0.3 秒后拖入配方链,保留轻触导航与页面滚动。

  • 桌面拖拽:顶部搜索结果支持直接拖入配方链,与左侧菜单拖入行为一致。

  • 搜索添加器:非拖动入口由下拉框升级为可搜索 combobox,支持点击、触摸与键盘 Enter 添加。

  • 七种分组密码模式补齐:TEA/XTEA/RC5/RC6/CAST-128/Blowfish/Twofish 从 ECB/CBC 扩到 ECB/CBC/CFB/OFB/CTR;五模式多长度与非法 IV 共 189/189 通过,CAST5/Blowfish CFB/OFB 与 Python cryptography oracle 逐字节一致。

  • PWA 完整接线:manifest、Service Worker、更新检查全部生效;生成式资源清单预缓存 839 项约 51.6 MiB,安装失败不替换旧缓存,只清理 ebctf-shell-* 自家缓存。真浏览器在线安装→断网重开,配方链与插件页 0 pageerror。

  • 修复首屏版本闪烁:静态 HTML 不再先显示 v0.1.2;首帧与运行态均为 v0.1.4

  • 修复 Worker 崩溃悬挂:Magic Worker 顶层加载失败时,当前任务原会永久 pending;现 error/messageerror/postMessage 失败均回落主线程。阻断 Worker 实测连续两次解码均返回,坏 Worker 只尝试一次。

  • 补齐真实验证:Stegosaurus 对 Python 3.11/3.14 真 .pyc 的 rawBytes/base64 四路径 4/4 通过,并补 3.14 magic;bkcrack WASM 浏览器 --version 返回 1.8.1,SharedArrayBuffer 可用。

  • 文档与 i18n:README 全清单从 registry 重生为 590 op / 16 分类;14 语言配方交互文案与 3 条 PWA 更新状态本地化,16 语言 990 key 同构

✅ 验证

  • SM4:官方附录 A 向量(单块 + ×1,000,000 迭代)+ Python cryptography oracle 六模式逐字节交叉 17/17 PASS。
  • SM2:官方签名向量 (r,s) + 官方加密密文逐字节对拍(加载自检)+ 密钥交换公式级对拍 + 协议双方一致性 + 双序往返,端到端 7/7 PASS。
  • t185 590 op / i18n 16 语言 990 同构 / 三件套齐全(净 0 增:SM2 删旧 detect-only 换新全功能)。
  • 配方链真浏览器 E2E 10/10:桌面左栏/顶部搜索拖入、触摸搜索项/移动左栏长按拖入、搜索添加器点击/Enter 及视觉态清理全过。

v0.1.3(已发布)

🐞 修复

  • Streebog(GOST R 34.11-2012)摘要字节序错,摘要值不正确:内部按「低位在后」处理 512 位块,与标准字节序相反。修复为消息整体字节反转送入、摘要反转输出。此前在 RFC 6986 §10 的 M1 向量(63 字节)上 512/256 双双不符——旧验证只用了全同字节数据(反转后不变,掩盖了错位)。现 4 条公开向量全过。
  • Rabbit 流密码密钥流字节序错extractBlock 原输出 BE(s7)…BE(s0),RFC 4503 约定为 LE(s0)…LE(s7),我方密钥流恰为官方 S[0] 的整体逆序。往返测试查不出此类错误(两个方向共用同一密钥流),已改为比对官方密钥流向量。现与 RFC 4503 §3.2 S[0] 逐字节一致。
  • tapCode 解不了无分隔连写坐标串23153131… 原解出 ?。坐标恒 2 位可无歧义拆分,decode 与 detect 同步放宽。
  • mixHexOctBin 连写 token 解码出乱码0x680o1450b… 被当成单个大数(出 ڀ)。用惰性量词 + 前瞻锁定唯一切分,解决 0b11011000x6c 类真歧义。
  • ipv4Int 解码无视「整数格式」参数:选了十六进制仍拒收不带 0x 的裸串 c0a80101;现按所选基数解析。
  • aaencode/aadecode 头部对齐:标准头部两处反斜杠写法纠正 + 剥离前统一去反斜杠匹配,彻底消除前缀剥离失败导致的 类乱码。
  • dnaDecode 连写碱基流返回空串:改为按 3 碱基 / 6 bit 定长切片,连写 / 分组 / 小写连写 / 往返均正常。
  • braille 默认乱序字典与标准盲文不互通mapping 默认改 auto(编码用 nabcc 标准,解码按密文是否含 7/8 点自适应选 raw / nabcc)。
  • fuyouyue / tianshu 未暴露密钥 params:补 params 声明,密钥可注入;独立三组对拍(参考加密→我方 / 我方加密→参考 / 我方往返)全 3/3 通过。
  • 曲路密码长度校验不完整:34 字符配 5×7 这类长度不会触发索引越界,原会静默产出不可还原的错值;改为入口显式校验「文本长度 = 行数 × 列数」。
  • 科普示例里 2 处声称值是修复前的错误输出:Streebog 示例值实为真摘要整体字节反转后截断(即旧字节序 bug 的产物),且其输入给的是 hex 串而本 op 按文本处理;原理段「已验证 M1/M2 全部官方向量」也超出实测覆盖(实为 M1 + 空串 4 条)。均按真实测值改正。
  • 科普示例可复现性修正:Rabbit 与 HMAC 的占位「(hex 密文)」「HMAC 值」换成官方向量真值;Fletcher 把位宽从输入串里的 abcde (16) 移到参数字段(原写法无法机器校验);HMAC 弃用密钥为 16 个 0x0b 原始字节的向量(用户无法在输入框键入),改用密钥为可见串 Jefe 的 RFC 2202 case 2。

🆕 新增 / 补齐

  • 新增 5 个算法(585 → 590 op),均与权威源密文逐字节一致:
    • twinHex Twin-Hex 双字符编码 — ASCII 32~127 的 96×96 组合表,索引转 base36 定长 3 位。
    • trollScript TrollScript — BrainFuck 三字符 token 方言(tro 开头 ll. 结尾,八指令 ooo/ool/olo/oll/loo/lol/llo/lll)。编码复刻通行实现的「乘法循环」短编码,产物逐字节一致。
    • asciiSum ASCII 前缀累加和 — 逐字符累加码值得递增数列,首项固定 0。
    • caesarBox 凯撒箱换位 — 按列宽写入网格、逐列读出。
    • curveCipher 曲路(蛇形)换位 — 网格按列蛇形折返读取。
  • Fletcher-8 / Fletcher-64:原仅 16/32 位,现补全 4 档(8 位模 15;64 位按 32 位字小端模 2^32-1)。
  • HMAC-MD5:WebCrypto 不支持 MD5,改用纯 JS 实现标准 HMAC 构造,过 RFC 2202 官方向量。
  • 7 个 op 新增「兼容模式」勾选框(默认关,原行为不变):base85(去 <~ ~> 包裹)、bcd(二进制半字节)、asciiRadix(不补前导零)、xxencode / uuencode(仅数据行)、ipv4Int(去 0x 标记)、tapCode(坐标连写)。用于与通行工具的输出格式对齐。
  • i18n 补齐转全绿:新 5 op 的名称键进 16 语言,并补上 14 语言缺失的贡献者备注键。现 16 语言 × 985 key 全同构。

✅ 验证

  • 全量三组兼容性验证 · 双权威源:对赛博厨师 CyberChef 与密码学工具箱 ToolsFx 建 287 条可执行配对(190 + 97),跑四组实验(权威自洽 / 权威→我方 / 我方→权威 / 我方自洽)。结论:我方自洽往返硬伤 0 例、长度变体压力档 0 例。古典密码 43/43、现代加密 17/17、兼容模式 9/9、新增 5 op 5/5 密文逐字节一致。权威源自身真 bug 0 例。
  • 真浏览器端到端验证(headless 加载真实首页):7 个「兼容模式」勾选框逐个确认真渲染、默认关、勾选后输出真变化、兼容产物仍可解回;5 个新 op 确认注册在册、参数框正常渲染、密文与往返均正确。一键解码回归 7/7 通过,改判定未引起排序回退。
  • 科普示例终检:本轮改动与新增共 16 个 op 的 31 条示例,按各自方向与参数真跑,31/31 复现。
  • 独立公开向量基准 41 条全过:刻意不以两权威源为基准(防我方与权威源同错),覆盖 RFC 1319/1320/1321/2104/2202/4503/4648/6986、FIPS 180-1/180-2、NESSIE、GB/T 32905、GOST R 34.11-2012。
  • 全量兼容性交叉验证(对照参考实现,61 个重叠算法全覆盖):三组测试台 + 严格甄别,结论我方自洽往返真缺陷 0 例;剩余 5 例互通差异(nihilist×1 + rotSpecial×4)均溯源为参考侧自身 bug / 变体差异,非我方缺陷。

👥 其他

  • 贡献者追加 yahufanpemg(V0.1.2 部分编码转义错误纠正)。

v0.1.2(已发布)

🆕 新增算法(全部通过官方向量验证后接线,585 op)

  • B 组流密码 8 项:A5/2 / Spritz / VMPC / E0 / HC-128 / HC-256 / Sosemanuk / MICKEY-128 2.0。
  • 哈希 3 项:Skein / Grøstl / JH。
  • KDF 3 项:Balloon / Lyra2 / yescrypt。
  • CAST-128(RFC 2144)— 分组密码,密钥扩展 K1-K32 交替 z/x 索引模式,Crypto++ cast128v.txt 官方向量全 PASS。
  • CityHash — Google 非加密高速哈希,CityHash32/64。Crypto++ 官方 299 组向量全量对拍通过。
  • Threefish — Skein v1.3 内建可调分组密码,256/512/1024 位分组。
  • Skipjack — NSA 1998 解密分组密码,NIST SP800-17 全部 11 组向量通过。
  • MARS — IBM AES 决赛圈分组密码,Crypto++ marsval.dat 全部 10 组向量通过。

⚡ 一键解码(智能解码)

  • 解码强度四件套:强度档位 + 自定义算法池 + 暴力爆破独立通道(XOR/凯撒/哈希字典/彩虹表/HMAC/PBE/Playfair/ZIP/CRC32/bkcrack,结果单独归组展示不污染主排序)+ 解析层数 1~3 选择。
  • 宽松判定模式(增强 / 极强 / 最强 / 自定义档):只判断输入字符种类数,不判定具体字符——变体编码题(「喵呜」表 0/1、emoji 表二进制)也能让相关算法参与解码;默认 / 快速档保持严格定义域识别。
  • 拖入 pcap / pcapng 流量包自动跑协议级分析:一键输出流量概览 + TCP 流重组 + HTTP 对象提取 + DNS 隧道检测 + ICMP 载荷提取四项协议级报告,含 flag 正则检测自动提级告警。

🛠 修复

  • 一键解码「解码强度」弹窗参与算法选择消失:CSS grid 布局未给「解析层数」段分配行位,auto-flow 把算法列表挤乱导致选项不可见;已显式定位 4 行布局并补全按钮组样式。
  • 暴力爆破算法移入左侧算法列表:作为虚拟分类与普通算法共用同一折叠 / 搜索 / 勾选 UI,右侧栏仅保留「我的方案」管理。
  • BrainFuck 括号宽容:孤儿 ] / 多余 [ 不再报「括号不匹配」,按 NOP 处理。
  • 本地桥 CORS 拦截:白名单从写死 localhost:8180 改为按请求 Origin 反射,127.0.0.1 打开页面时本地桥不再失效。
  • MARS worker 侧注册缺失registerAll.js 漏注册导致一键解码静默少该算法,已补。

🎨 UI / 工程

  • 左侧导航多分类同时展开、二级菜单整块深色填充、字体与间距收紧。
  • 版本号全局变量化:统一由 src/core/version.js 导出,main.js / mcpBridge.js / index.html 共用同一来源,消除版本号割裂。
  • 随波逐流四点对齐:ROT8000 加 offset 参数、Morse 兼容 BA 替代 + 0/1 数字形式、Caesar 加 mode 参数、天干地支加 mode 参数含错别字兼容字典。
  • 纯 JS 快路径优化:base64 encode 12× 提速、hexEncode / byteReverse / xorCrypt 大文件性能优化。
  • i18n 16 语言全 979 key 同构。

v0.1.1(已发布)

  • 首个公开发布版本
  • 518 op 智能解码 + 插件 / MCP 体系 + 18 语言 i18n。
  • 发布前基线全绿:op 520 / dup false / failed·orphan 0 / i18n 866 同构 / MCP 6 tools / 插件 18/18 / 真浏览器 magic 7·0 / node magic 35·0·1knownGap / 全路由页面加载 pageError 0。