本页用于帮助使用者快速判断”我的项目该选哪个”。 Hutool 是优秀的成熟开源项目,suretool 参考其设计理念;两者定位不同,以下对比仅陈述客观差异,不做优劣定性。
| 维度 | suretool | Hutool |
|---|---|---|
| 定位 | 小而全的 Java 工具库,聚焦常用高频能力 | 大型工具库,覆盖面极广(含更多领域扩展) |
| JDK 要求 | 仅 JDK 25+(maven.compiler.release=21) |
JDK 8+(5.x 支持 JDK8+;兼容老版本) |
| 包名 | com.sure.tool |
cn.hutool |
| 模块数 | 11 个业务模块 + bom/all/examples | 数十个模块(hutool-all 聚合) |
| 依赖策略 | 零第三方依赖(除 POI 等专项模块) | 核心零依赖,部分模块带第三方依赖 |
| 项目 | suretool 选择 | 说明 |
|---|---|---|
| 加密默认值 | AES-GCM(认证加密)、RSA-OAEP、最小 2048 位密钥 | 默认安全基线,杜绝弱算法/弱模式被误用 |
| DES | @Deprecated,仅保留解密存量数据 |
新代码强制走 AES |
| 线程 | 静态工具方法 + 显式并发工具(ThreadUtil/ExecutorBuilder) | 提供更多高级并发组件 |
| JSON | 自带轻量实现(JSONObject/JSONArray/JSONUtil) | 自带 hutool-json(与 fastjson/gson 兼容模式不同) |
| 校验/脱敏 | ValidatorUtil、DesensitizedUtil | 功能类似 |
| 敏感词 | DFA 实现(sure-dfa) | SensitiveUtil 类似 |
// Hutool
String s = cn.hutool.core.util.StrUtil.removePrefixIgnoreCase("Hello", "he");
String md5 = cn.hutool.crypto.SecureUtil.md5("data");
// suretool
String s = com.sure.tool.util.StrUtil.removeSuffixIgnoreCase("Hello", "LLO");
String md5 = com.sure.tool.crypto.SecureUtil.md5("data");
两库 API 命名风格相近(工具类 + 静态方法),Hutool 用户迁移成本低。
选择 suretool:
sure-bom 统一版本管理、按需引入模块。选择 Hutool:
sure-bom 引入后按模块替换:sure-core(字符串/集合/日期/IO/反射)、sure-json、sure-crypto 等;AesUtil 密文格式为 IV || ciphertext+tag(Hex/Base64),与 Hutool 的 AES 输出不互解;两库均基于 Apache License 2.0。suretool 的类设计与命名参考 Hutool 公开 API 风格, 部分实现思路借鉴了 Hutool(如缓存策略、DFA 过滤),并已在类注释中标注。