选择数据库哈希算法,核心取决于使用场景(如分库分表、密码存储、数据校验、索引等)、性能要求、安全性需求和数据特征。下面按常见场景系统说明怎么选。
通常包括:
下面重点讲这些。
目标:均匀、稳定、快速
| 算法 | 说明 | 适用 |
|---|---|---|
| MurmurHash | 快、分布好 | ✅ 最常用 |
| Fnv-1a | 简单、快 | 小数据 |
| CityHash / xxHash | 极快 | 高性能 |
shard_id = MurmurHash(user_id) % 16
目标:慢、抗暴力破解
| 算法 | 推荐度 |
|---|---|
| bcrypt | ⭐⭐⭐⭐⭐ |
| scrypt | ⭐⭐⭐⭐ |
| Argon2 | ⭐⭐⭐⭐⭐(新标准) |
hash = Argon2(password + salt)
目标:抗碰撞
| 场景 | 算法 |
|---|---|
| 一般校验 | SHA-256 |
| 高安全 | SHA-384 / SHA-512 |
| 已淘汰 | ❌ MD5 / SHA-1 |
目标:快、低碰撞
目标:多哈希、分布均匀
是否涉及安全?
是否要求均匀分布?
是否对性能极敏感?
是否需要抗碰撞?
是否需要可扩展?
❌ 用 MD5 存密码
❌ 用加密哈希做路由
❌ 不分 salt
❌ 哈希结果直接当主键
非安全场景:MurmurHash / xxHash
安全场景:Argon2 / bcrypt
校验场景:SHA-256+
如果你能告诉我:
我可以直接给你具体算法 + 示例代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。