编辑多次搞漏了,
1.0.22 完全可以正常使用,之前推荐 1.0.21 是出于「稳定优先+功能无差异」的考量,对你只用到 ED25519 签名的场景来说,两者没有本质区别。下面详细说明原因:
一、libsodium 的双轨版本机制
libsodium 采用两套版本并行的发布体系,这是很多人容易混淆的点:
- 点发布版(Point Release):比如 1.0.20、1.0.21、1.0.22,有新增功能、较大架构调整时才会发布,版本号递增。
- 稳定维护版(Stable Release):比如 1.0.21-stable,基于对应的点发布版本,持续回传安全补丁、编译修复、性能优化,永远不新增功能、不破坏API/ABI兼容性,是工业界生产环境的标准选择。
目前的现状是:
- 1.0.21 有官方长期维护的
-stable 分支,经过了更久的大规模验证,bug 和兼容性问题最少。
- 1.0.22 是 2026 年 4 月刚发布的新点版本,目前还没有对应的
-stable 维护版,属于「功能先行版」。
二、对你的 ED25519 场景,升级无收益
ED25519(crypto_sign_* 系列)是 libsodium 最核心的基础密码学组件,从 1.0.19 版本之后就没有过逻辑改动和 API 变更:
- 功能完全一致:1.0.22 新增的是 IP 地址加密、XOF 可扩展输出哈希等边缘功能,和 ED25519 签名、验签没有任何关系,升级得不到任何收益。
- 调用完全兼容:两者 ABI 100% 兼容,你之前写的所有 DLL 声明、封装代码,换 1.0.22 的 DLL 可以直接运行,一行都不用改。
- 安全性无差别:2025 年底披露的 ED25519 点校验漏洞,在 1.0.21 及之后的所有版本中都已修复,两个版本都不存在该安全问题。
三、最终建议
- 如果你追求稳妥、只用来做 ED25519 签名:继续用
libsodium-1.0.21-stable-msvc.zip 是最优选择,稳定且维护周期更长。
- 如果你想追新版本:直接下载
libsodium-1.0.22-msvc.zip 完全没问题,替换 DLL 即可,所有调用代码都不用修改。
- 无论选哪个版本,都优先选 MSVC 版,不要用 MinGW 版,和易语言的 Windows 环境兼容性最好。
|